2016-06-21 55 views
0

我一直在成功使用jQuery驗證腳本。但現在我需要在一個網頁上放置兩個表格。JQuery驗證SubmitHandler在同一頁上的多個表單

我發現了代碼來規範驗證規則等,但我很難說如何使用我在「submitHandler」部分中使用的內容。我一直在用它來製作一個spinner gif(hide/show)。

但是現在在同一頁面上有兩種形式,任何一個都會激活另一個微調控制器,或者它們都激活或者沒有激活任何一個提交按鈕被點擊。

關於如何區分這一點的任何想法?

$(document).ready(function() { 
    $('form').each(function() { 
    $(this).validate({ 
     // edited out non-relevant code for this question // 

     submitHandler: function(form) { 

      $('#submitSpin').show(); 
      $('#submitButt').hide(); 
      form.submit(); 

     }, // END submitHandler 

    }); // END this validate 
    }); // END form each function 
}); // END document ready function 

所以很清楚,我不能對兩個窗體的按鈕使用相同的ID;但如果我讓他們不同,我不知道如何寫「如果這個表單被提交,然後顯示/隱藏這些ID,但是如果這個其他表單被提交,然後顯示/隱藏這些其他ID」(可以這麼說) 。

+0

只需使用'submitHandler'的'form'參數只針對特定的表單對象......同樣的方式,'form.submit()'作品。 – Sparky

回答

1

就像form.submit()一樣,只需使用傳遞到submitHandlerform參數即可。它代表了表單對象。然後使用jQuery來查找並定位它的微調器。

submitHandler: function(form) { 
    $(form).find('.submitSpin').show(); 
    $(form).find('.submitButt').hide(); 
    form.submit(); 
}, // END submitHandler 

一定要永不重複任何id頁面上,所以submitSpinsubmitButt只能是類名。

證明了概念DEMO:jsfiddle.net/0g0oaonL/2/

+1

非常感謝!!!!! – SyberKnight

+0

糟糕,只是發現這在Chrome中正常工作,但在Safari中不起作用。表單確實提交,但顯示/隱藏不會發生。嗯。 – SyberKnight

+0

@SyberKnight,我的jsFiddle演示是使用Safari編寫的,工作正常。 jQuery'.show()'和'.hide()'是非常簡單的方法,並且由於jQuery被規範化以適用於包括Safari在內的各種瀏覽器,所以這沒有任何意義。 – Sparky

相關問題