1

以下のように、jQuery を使用して大量のデータ検証を行う、かなり複雑な php POST フォームがあります。ただし、検証が完了する前にフォームが送信されているように見えるため、いくつかの問題が発生しています。

質問 : 検証に時間がかかりすぎて、jQuery が true または false を返す前に、デフォルトでフォームが送信される可能性はありますか? もしそうなら、これに対処する最善の方法は何ですか?

jQuery('#order-form').submit(function(){

// Validate many different fields in various ways

if (valid)
   return true;
else
   return false;

});
4

3 に答える 3

0

これは、あなたを助けることができるお問い合わせフォームの例としてのコードスニペットです。私はjqueryvalidation.orgプラグインを使用し、ajaxを使用してフォームを投稿しました

$(function() {

        var form = $("#contact_form").validate();

        $('#progressbar').hide();     
        $('#success').hide();
        $('#failure').hide();

    $(document).ajaxStart(function() {
       $( "#progressbar" ).show();
     });
    $(document).ajaxStop(function() {
       $( "#progressbar" ).hide();
     });


    $("form#contact_form").submit(function() {
        if(form.valid())
        {   
          //any other validations here

          var name = $("#txtName").val();
          var email = $("#txtEmail").val();
          var phone = $("#txtPhone").val();
          var message = $("#txtMessage").val();

          $.ajax({
            url: "process_contact.php",
            type: "POST",
            data: {'name': name,
                    'email': email,
                    'phone': phone,
                    'message': message},
            dataType: "json",
            success: function(data) {
                  if(data.status == 'success')
                  {
                        $('#contact_form').hide();                                
                        $('#success').show();
                  }
                  else if(data.status == 'error')
                  {
                        $('#failure').show();
                  }
                }

      });
      return false;
        }
    });
  });
于 2013-07-02T14:30:28.493 に答える
0

私の知る限り、あなたのケースが発生する可能性がある条件は 2 つだけです。

  1. 検証のコードにエラーがあるか、または
  2. JavaScriptがオフになっています。

クライアント側の検証に関して、jQuery Validation を試しましたか? 2 つのイベントでフォーム内のすべての要素を検証します。

  1. 要素が変更されるたびに、
  2. フォームが送信されたとき。

カスタム メソッドを追加して、各要素の各条件に対して一意の検証を行うこともできます。

jQuery Validation に関する詳細と例 (ajax を使用する場合と使用しない場合) については、こちらを参照してください。

于 2013-07-22T05:53:53.817 に答える