Bir formu gönderdikten sonra jQuery-çek ile Problem

3 Cevap php

Ben bir form var, ve bunun gönderdiği önce ben bir veritabanına karşı girişi bazı kontrol etmek istiyorum. Fikir: 1) formu göndermek, 2) kontrol değerleri, 3) hata göstermiyor ya da aslında formu gönderin. Örnek:

$(form).submit(function() {
  $.post('check.php', {
    values
  }, function(res) {
    // result I need before submitting form or showing an error
  });

  return false;
});

Şimdi sonucu (yani anında) olsun önce, biraz zaman alır, bu yüzden ben $. Sonrası sonuçlar geri almak göndermeden önce ve bir şeyler yapmak için formu önlenmesi, altta return false koymak onunla.

Sorun:. I $ görevinden sonuç almak, ve her şey Tamam olarak çıkıyor sonra, nasıl formu gönderdikten ile gitmek için komut söylemek istiyorsun? I submit() sadece sonsuz bir döngü oluşturarak, bu onay komut geri alacağım kullanın.

Herhangi bir fikir? Peşin ve Merry Christmas teşekkürler!

3 Cevap

Eğer bu şekilde yaptıysa aslında, iki formu teslim ediyoruz. Bu savurgan görünüyor. Bunun yerine, sadece form gönderme önlemek ve (zaten gibi) uyumsuz değerleri işlemek. Sunucudan, iyiyse verileri kabul ve eğer o değil bunu reddediyoruz. Zaten başlamak için sunucuya veri gönderme eğer formu göndermek için gerek yok. Biraz gereksiz bulunuyor.

Bunun için bir boolean bayrak kullanabilirsiniz:

var isValid = false;
$(form).submit(function() {
  if (isValid) return true;
  $.post('check.php', {
    values
  }, function(res) {
    if (res.valid) {
      isValid = true;
      $(form).submit();
    }
    // result I need before submitting form or showing an error
  });

  return false;
});

Onclick olan bir bağlantı ile Gönder düğmesini değiştirmeyi deneyin. Programlama sonra formu gönderin. Örneğin:

<a id="submit">Submit</a>

$($("a#submit").click(function() {
   $.post('check.php', {
          values
         }, function(res) {
               // result I need before submitting form or showing an error
         });
  if (condition) {
     $('[name=form_name]').submit();
  };
});