我有一个表单,里面有一些 div 块。所有的 div 都有它们的字段和按钮。单击按钮时,我只需要验证那个 div(按钮的父级)并将一些字段异步提交到服务器。一切正常,但不是验证。我使用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>
而不是调用userPasswordValidator.form()
一个按钮单击和userProfileGeneralValidator.form()
另一个按钮单击。是否有任何技巧可以实现我的目标:使用 jquery 分别验证几个表单部分?
PS:找到了一种解决方案:将几种形式放在主要形式中。每个 div 一个。但认为它很脏。
使用我使用的解决方案进行更新:最后我从这个问题中得到了答案,但做了以下更改:
我在 document.ready 的某个地方调用validate()
整个表单的方法。作为验证选项,我为我需要验证的所有控件添加规则(它们嵌套在一些divs
组中)。Messages/errorPositions/Success 我在文件中声明,我在其中单击该 div 中的按钮,其中嵌套了要验证的控件。并验证我使用的那个 div:
var validator = $("#topUserProfile").validate(userProfileGeneralValidator);
// Validate and save general information
if (!validator.form()) {
return;
}
#topUserProfile
包含控件的 div 的名称在哪里;userProfileGeneralValidator
是一个变量,它包含用于验证的附加选项(消息/位置/等)。谢谢大家,谁帮忙。