1

jquery validate() を jquery フォーム プラグインと組み合わせて、Ajax を使用してフォームを送信しています。送信ボタンを送信するには2回クリックする必要があることを除いて、すべてが機能します。問題を解決する方法について何か提案はありますか?

jquery フォーム プラグイン (http://www.malsup.com/jquery/form/#ajaxSubmit) で推奨される return false に加えて、 preventDefault() と $.ajaxSetup({async:false}); を使用してみました。 .

また、送信ボタンはイメージです。

 <input id="submit" type="image" src="filename.jpg">

コードは次のとおりです。

$(document).ready(function(){
$("#form-id").validate({
  rules: {
    email: {
      required: true,
      email: true
      }
    },
   messages: {
     email: {
       required: "Please enter a valid email address.",
       email: "Use this format: user@example.com."
     }
  },
  submitHandler: function () {
    $('#form-id').submit(function(){
    var options = { 
        success: showMessages
    }; 
$(this).ajaxSubmit(options);
    return false;
    });

}//end submitHandler
});//end validate
});//end document.ready

使用したプラグイン:

http://docs.jquery.com/Plugins/Validation

http://www.malsup.com/jquery/form/#ajaxSubmit

4

1 に答える 1

0

submit()でフォームにハンドラーsubmitHandlerを追加する必要はありません。ハンドラーajaxSubmitは自動的に送信されます。これを試して:

submitHandler: function () {
    var options = { 
        success: showMessages
    }; 
    $('#form-id').ajaxSubmit(options);
}
于 2012-02-29T14:58:55.190 に答える