具有虚拟页面浏览量的JQuery验证程序

问题描述:

我正在制作一个登录页面,上面有一些表单,我使用JQuery验证程序验证每个表单上的输入,事情是两个表单应该具有相同的ID并且下课了,他们通过他们的阶级验证这样具有虚拟页面浏览量的JQuery验证程序

$('form.contact-1').validate({ 

因此,有两种形式使用这个类,您填写的第一个表单后,那么它就是一个简单的显示/隐藏,显示第二形式只是一个第一种形式的延伸。然后它将整个虚拟页面视图发送给Google Analytics。这就是它应该如何在理论中工作,缺点是当我填写第一个表单并转到第二个表单时,JQuery验证程序停止工作。

有什么办法可以做到这一点,而无需做更多的单独验证?

+0

你绝对不应该使用相同的'id'不止一次在页面上......这就是'class'是。 – Sparky

“......事情是,两个表格应具有相同的ID和阶层,他们通过他们作为阶级验证......”

如果你想初始化一个以上的表格插件页面上,那么你就需要用.each()包裹.validate()方法。

$('form.contact-1').each(function() { 
    $(this).validate({ 
     // global rules & options for all forms 
    }); 
}); 

Official Documentation

该插件可以处理每次调用只有一种形式。如果你有,你要验证一个页面上的多个表单,你必须初始化它们全部单独


重要:如果你确实正在使用两种形式相同id,那么这是无效的HTML,所以它将是不可靠的跨浏览器,任何JavaScript可能会失败或不可预知。如果不能使每个id都是唯一的,则完全删除id,并完全依赖class指定,该指定被设计为可重复使用。

工作演示:http://jsfiddle.net/n9Lup2dy/

+0

谢谢你的帮助:) – JonnySerra

如果没有完整的代码进行故障排除有点困难,但您可以尝试以下方法。

$('form').each(function() { 
     $(this).validate({  // initialize plugin on each form 
      // global options for plugin 
     }); 
    }); 

回答Validation plugin - Auto validate multiple forms on a page