2017-03-12 10 views
1

複数選択ドロップダウンname=select[]を持つフォームがあります。このフォームはJquery Validationと検証後に検証されます。ハンドラ呼び出しを送信してくださいAjaxすべてのフォームキーと値を配列に含めたいフォーム、ここに私のコードです。Ajax submit submit Jquery Validation

function:submitHandler 
{ 
$.ajax({ 
url: "processo.php", 
type: "POST",    
data: new FormData(this), 
cache: false,    
processData:false,  
success: function(data) 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
} 

今、検証が正常に行われ、新しいいるFormData(この)私はそのPHPはなく、配列に変数を送信後、new Formdata($("#frmRegister")[0])を置くときid.but形成認識しません。どのように私はnew Formdata("#frmRegister")のようにフォームIDを定義することができます。私はまた、フォームで複数の配列を選択してください。

+0

残りのコードはどこにありますか?なぜ 'function:submitHandler'ですか? '.validate()'メソッド内では、 'submitHandler:function(form){...}'でなければなりません。関連するコードの残りの部分を適切なコンテキストで表示します。 – Sparky

答えて

5

The submithandler.validate()メソッドの内部に入り、開発者が提供するform引数を使用します。

$('#myform').validate({ 
    submitHandler: function(form) { 
     $.ajax({ 
      url: "processo.php", 
      type: "POST",    
      data: new FormData($(form)), 
      cache: false,    
      processData: false,  
      success: function(data) { 
       $('#loading').hide(); 
       $("#message").html(data); 
      } 
     }); 
     return false; 
    }, 
    // other options 
}); 

You could also use $(form).serialize(); instead

1

ありがとうご回答いただきありがとうございます。ここにはコードがあります。

function:submitHandler 
{ 
$("#frmRegister").load("submit",function(e)// Trigger Submit When Validation Done 
{ 
$.ajax({ 
url: "processo.php", 
type: "POST",    
data: new FormData(this), 
cache: false,    
processData:false,  
success: function(data) 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
}); 
} 
+0

しかし***ここで、***は 'function:submitHandler {...}'が見つかりました?これは、jQuery Validateプラグインのコンテキスト内では意味をなさないものです。あなたの質問にタグで示されているようにこのプラグインを実際に使用していますか? – Sparky

+0

申し訳ありませんが、関数:submitHandlerは存在しません。submitHandler:関数(フォーム)をリクエストしてください。お気軽に – Hashaam

+0

これが真であれば、 '$("#frmRegister ")load(" submit ")'このプラグインの 'submitHandler'コールバック関数内に' load'ハンドラまたは 'submit'イベントを入れないでください。 – Sparky