2012-02-29 13 views
1

jqueryのvalidate()とjqueryフォームのプラグインを組み合わせて、Ajaxを使用してフォームを送信します。送信ボタンが送信するために2回のクリックを必要とする以外はすべて動作します。どのように問題を解決するための任意の提案?Jqueryのvalidate/jqueryフォームは2回のクリックで提出する必要があります

jquery形式のプラグイン(http://www.malsup.com/jquery/form/#ajaxSubmit)で推奨されている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: [email protected]" 
    } 
    }, 
    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

答えて

0

あなたが形にsubmit()ハンドラを追加する必要はありませんが、 submitHandlerajaxSubmitから送信されます。試してみてください:

submitHandler: function() { 
    var options = { 
     success: showMessages 
    }; 
    $('#form-id').ajaxSubmit(options); 
} 
+0

それを修正しました。あなたがそれを指摘したので、完璧な意味があります。ありがとう! – user1240408

+0

問題ありません - お手伝いしてうれしいです。 –

関連する問題