我有一个窗体,里面有一些div块。所有的div都有他们的领域和按钮。在按钮单击我需要验证那个div(按钮的父)并提交一些字段到服务器异步。一切正常,但不是验证。我使用JQuery validation plugin。因为我看到我不能写这样的代码:JQuery使用多个验证器验证每个表格
<script type="text/javascript">
//.......
// Validator for general information
var userProfileGeneralValidator = $("#form1").validate({
onkeyup: false,
onclick: false,
onfocusout: false,
rules: {
txtPrivateNumber: {
required: true
}
},
messages: {
txtPrivateNumber: {
required: "Required!"
}
},
errorPlacement: function (error, element) {
if (error.text() != "") {
}
},
success: function (lbl) {
}
});
// Validator for password information
var userPasswordValidator = $("#form1").validate({
onkeyup: false,
onclick: false,
onfocusout: false,
rules: {
txtOldPass: {
required: true,
minlength: 5
}
},
messages: {
txtOldPass: {
required: "Required!"
}
},
errorPlacement: function (error, element) {
if (error.text() != "") {
}
},
success: function (lbl) {
}
});
</script>
而不是一个按钮,点击userProfileGeneralValidator.form()
其他按钮点击呼叫userPasswordValidator.form()
。是否有任何技巧可以实现我的目标:用jQuery分别验证几个表单部分?
PS:找到了一个解决方案:在主表单中放置几个表单。每格一个。但认为它很脏。
更新与解决方案IVE使用:在我已经采取了回答这个问题的结束,而是进行了如下修改:
我打电话的地方整个窗体上的validate()
方法的document.ready。作为验证选项,我为所有需要验证的控件添加了规则(它们作为组嵌套在一些divs
中)。消息/ errorPositions /成功我声明在文件中,我在那里工作点击按钮在该divs,其中验证控件嵌套。并验证只是DIV我使用:
var validator = $("#topUserProfile").validate(userProfileGeneralValidator);
// Validate and save general information
if (!validator.form()) {
return;
}
哪里#topUserProfile
是包含控制div的名称; userProfileGeneralValidator
是变量,它包含用于验证的附加选项(消息/位置/等)。谢谢大家,谁帮了忙。
谢谢,解决方案很简单,完整,工作得很好!所以我可以在不创建
毫米..tested ..不实际工作没有额外的形式标签.. http://stackoverflow.com/a/4938022/47672 – 0x49D1
这是正确的,输入元素仍然必须是一种形式,但你可以使用它来验证表单中的部分。 –