2


0

Jquery検証プラグイン、動的フォーム検証

Jquery Validation Pluginを使用して、Ajax経由で読み込まれたフォーム(動的フォーム)を使用しています。 Jquery 1.4の時点で、送信時のライブイベントが可能になりました。 問題は、動的フォームが検証された後に確認メッセージを表示することです。 私のコードはこのようになります:

$('.dynamicForm').live('submit',function(){
   $(this).validate();
   if($(this).valid()){
      if(!confirm('Are you sure?'))
         e.preventDefault();
   }
});

期待どおりに機能していません。 何らかの形で確認が最初に表示され、次にフォームを送信するときに2回目に確認が行われます。 何か案は?

2 Answer


3


validate optionsで利用可能な `submitHandler`関数を使用します:

$(".dynamicForm").validate({
   submitHandler: function(form) { //Only runs when valid
     if(confirm('Are you sure?'))
       form.submit();
   }
})

ドキュメントから-* submitHandler *:

_ フォームが有効なときに実際の送信を処理するためのコールバック。 フォームを唯一の引数として取得します。 デフォルトの送信を置き換えます。 検証後にAjaxを介してフォームを送信する適切な場所。 _


3


どういうわけか、これはうまくいくようです:

$('.dynamicForm').live('mouseover',function(){
    $(this).validate({
        submitHandler:function(form){
            if(confirm("Are you sure?")){
                form.submit();
            }
        }
    });
});