我目前在网页上使用了两个相同的联系表格。一个在每一页上——在横幅中,另一个版本在联系页面本身的主要部分。这是我用来验证它的:
$(".contactform").each(function() {
$(this).validate();
});
但是,当我在任一表单上单击提交时,其中一个(未使用的)会返回显示错误。我不希望这个人必须填写两者(因为它们是完全相同的表格)并且对从这里去哪里有点困惑。
我目前在网页上使用了两个相同的联系表格。一个在每一页上——在横幅中,另一个版本在联系页面本身的主要部分。这是我用来验证它的:
$(".contactform").each(function() {
$(this).validate();
});
但是,当我在任一表单上单击提交时,其中一个(未使用的)会返回显示错误。我不希望这个人必须填写两者(因为它们是完全相同的表格)并且对从这里去哪里有点困惑。
根据 xnnyygn 的回答,我最终做的是按 id 添加单独的 .validate 规则,当按类或表单完成时,这将不起作用并显示第一次选择错误结果。
$("#contactform1").validate({
rules: {
field: {
required: true
}
}
});
$("#contactform2").validate({
rules: {
field: {
required: true
}
}
});
$(document).ready(function(){
$("#contactform1").validate();
$("#contactform2").validate();
});
我最终在这里使用了两个 id 而不是类或表单选择器。不这样做是行不通的。经验教训,使用 jquery.validator 你必须使用 ids。
这是我的测试 HTML,来自http://docs.jquery.com/Plugins/Validation#source,添加了具有相同类的重复表单。
我尝试直接调用验证,但是当我按下第二个提交按钮时,第一个表单被验证。但是,单独调用 validate 效果很好。
验证器“跳转”到另一个表单的原因可能是 jquery 验证器只采用第一个元素(表单)并应用规则。有关更多详细信息,请参阅源代码。
不确定它是否能解决这个问题,但您不需要明确使用 '.each()'。写吧:
$(".contactform").validate();