2016-12-06 26 views
0

おそらくばかげた質問が、このフォームはのみ提出することを取得する:私は、フォームを作成しようとしていますは、どのように私はこれが本当にトリッキー見つけたときにそれが必要

場合にのみ、それが特異的べき提出します。 以下のスクリプトは、自分のページに他のフォームを送信するたびに実行されます。

呼び出されない限り、実行されないようにするにはどうすればよいですか?

$('#nurturing_pop_up_form').validate({ 

rules: { 
     emailaddress: { 
      required: true, 
      email: true 
     }, 
     board_meeting: { 
      required: { 
       depends: function() { 
        return $('input[name=in_12_months]').is(':checked')==false && $('input[name=in_6_months]').is(':checked')==false 
       } 
      } 
     } 

}, 

submitHandler: function(form) { 

    var url_remind = 'http://example.com'; 
    var data_remind = $('#nurturing_pop_up_form').serializeArray(); 

    $.ajax({ 
     type: "POST", 
     url: url_remind, 
     data: data_remind, 
     success: function(){ 
     $('.nurturing_pop_up').fadeOut(); 
     }  
    }); 
} 
}); 

このようなものを追加すればよいですか?

$('#nurturing_pop_up_form').submit(function(e){ 
    e.preventDefault(); 

    $('#nurturing_pop_up_form').validate({ 
    rules: { 
    //the rest like above 

ヘルプは非常に高く評価されています!

+0

あなたが説明していることを示すものは何も表示されていません。関連するHTMLマークアップを含む*完全なデモを構築します。 – Sparky

答えて

0

フォーム提出を具体的に行う必要がある場合にのみ、フォームを送信しようとしています。

このプロセスは、によって自動的に処理されます.jQueryによる検証ではなく、はこれを強制するために何か特別な作業を行う必要があります。

以下のスクリプトは、自分のページに他のフォームを送信するたびに実行されます。

"below"というスクリプト(.validate({...}))は、単にプラグインの初期化ルーチンです。表示されたコード内では、id="nurturing_pop_up_form"で1つのフォームのみを初期化しています。ページ上の他のフォームは完全に影響を受けません。無効なHTML、.validate()の追加インスタンス、他の提出ハンドラ、またはあなたが私たちに示していない誤りのあるコードを持っている可能性があります。

呼び出されない限り、実行しないようにするにはどうすればよいですか?

あなたの質問は、起こっていることの誤った仮定に基づいていると思います。 .validate()は、ページロード時にONCE(DOMレディハンドラ)と呼ばれ、にフォームのプラグインを初期化すると仮定されています。プラグインはと自動的にがクリックをキャプチャし、データを検証し、送信を処理します。

このようなものを追加すればよいですか?

$('#nurturing_pop_up_form').submit(function(e){ 
    e.preventDefault(); 
    $('#nurturing_pop_up_form').validate({... 

絶対にありません。決して同じフォームの.submit()ハンドラ内に.validate()を入れてください。それは完全に不要で、プラグインの初期化を遅らせ、組み込みの送信ハンドラを妨害します。

他のフォームがどのように/どのような影響を受けるのか説明したものはありません。

関連する問題