2016-06-21 54 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

相关问题