我正在使用jQuery Validation plugin来验证我的表单。现在我想验证我网站上的每个表单。这有效:
$('form').validate({
<?php echo $translation["validation_lang"];?>
errorPlacement: function (error, element) {
$(element).tooltipster('update', $(error).text());
$(element).tooltipster('show');
},
success: function (label, element) {
$(element).tooltipster('hide');
}
});
我正在使用Tooltipster来显示相应字段旁边的错误。再次,这可行。 PHP
- 中的字符串可选择加载语言包。
现在,我的网站上还有其他需要其他规则的表单。例如,注册表应检查用户名可用性,检查用户名有效性(长度,字符,......)等。
$('#registerForm').validate({
rules: {
username: {
minlength: 3,
maxlength: 50
},
password1: {
minlength: 5
},
password2: {
minlength: 5,
equalTo: "#password1"
},
email: {
remote:{
url: "getContent.php",
type: "post",
data: {
type: "checkMail"
}
}
},
username: {
remote: {
url: "getContent.php",
type: "post",
data: {
type: "checkUser"
}
}
}
},
messages: {
email: {
remote: "<?php echo $translation["already_registered"][0];?>"
},
username: {
remote: "<?php echo $translation["already_registered"][1];?>"
}
}
});
在同一页面上拥有这两个代码段不起作用。如果将上面的代码正文(因此rules
和messages
)放在最初的$('form').validate({
内,而不是它自己的$('#registerForm').validate({
,那么它确实有效。我似乎无法在任何地方找到如何为特定表格添加某些规则,同时保持所有表格的“一般”规则。
简而言之:如何在保留一般表单规则的同时,将规则/消息/ submitHandlers添加到具有特定ID的特定表单中?
答案 0 :(得分:1)
您可以使用setDefaults方法定义常见的验证内容: http://jqueryvalidation.org/jQuery.validator.setDefaults/
示例:
$.validator.setDefaults({
errorPlacement: function (error, element) {
$(element).tooltipster('update', $(error).text());
$(element).tooltipster('show');
},
success: function (label, element) {
$(element).tooltipster('hide');
}
});
jsFiddle - 为所有表单设置错误元素为“em”。