我正在尝试使用jQuery验证插件(从此处 - > http://bassistance.de/jquery-plugins/jquery-plugin-validation/
)以编程方式验证基于按钮单击的页面某些部分中的字段(不是真正的表单提交直到结束在进入新的部分之前,它将验证整个表格的最后一部分。基本上,当您单击特定部分中的按钮时,该部分中的字段需要进行验证。页面的第一部分验证就好了,但是当我到达第二部分时,它只是直接通过而没有验证。这样做的正确方法是什么?我至少在正确的轨道上吗?
这是我正在谈论的样本。如有必要,我可以添加更多代码。
// Step 1 section validation
var validateStep1 = $("#form1").validate({
errorClass: "warning",
onkeyup: false,
onblur: false,
onfocusout: true,
rules: {
"field1": {
required: true,
},
"field2": {
required: true,
minlength: 1
},
"field3": {
required: true,
}
}
});
// Step 2 section validation
var validateStep2 = $("#form1").validate({
errorClass: "warning",
onkeyup: false,
onblur: false,
onfocusout: true,
rules: {
"field4": {
required: true,
},
"field5": {
required: true,
},
"field6": {
required: true,
}
}
});
// click events for buttons to proceed
$("#button1").click( function() {
if (validateStep1.form()) {
// proceed
}
});
$("#button2").click( function() {
if (validateStep2.form()) {
// proceed
}
});
提前感谢您的帮助!
答案 0 :(得分:4)
我猜你不能在同一表格上使用两次不同的'验证'方法。
您可以使用的是规则对象上的“依赖”选项。它允许仅根据“依赖”的结果“应用”规则。
此页面上有一个示例:http://rocketsquared.com/wiki/Plugins/Validation/validate#toptions(转到“规则”文档部分)
$(".selector").validate({
rules: {
contact: {
required: true,
email: {
depends: function(element) {
return $("#contactform_email:checked")
}
}
}
}
});
希望这有帮助, d。