我正在使用jQuery验证插件来提供一些检查,我可以添加或删除它们。能够将输出组合为一个字符串的最佳方法是什么?在下面的密码1字段的代码中,我一次只能收到一条消息,因此通常会说:
'密码必须为8个字符'
或,'密码必须包含数字'
很高兴地说,'密码必须是8个字符。密码必须包含数字。密码必须包含字母'。
我很欣赏内置的长度,但可以很容易地将其更改为addMethod。
感谢。
<script>
jQuery.validator.addMethod("containNumber", function(value, element) {
return this.optional(element) || (/\d/.test(value));
}, "Password must contain a number");
jQuery.validator.addMethod("containUpper", function(value, element) {
return this.optional(element) || (/[A-Z]/.test(value));
}, "Password must contain an uppercase character");
jQuery.validator.addMethod("containLower", function(value, element) {
return this.optional(element) || (/[a-z]/.test(value));
}, "Password must contain a lowercase character");
$( "#passwordchange" ).validate({
rules: {
password1: {
required: true,
minlength: 8,
maxlength: 64,
containNumber : true,
containUpper: true,
containLower: true
},
password2: {
equalTo: '#password1'
}
}
});
</script>
答案 0 :(得分:0)
希望它对你有所帮助
在 jQuery.validator.addMethod
中,如果出现任何错误消息,则插件会在input元素的底部创建一个.error
类,其中包含特定的错误消息。
你应该做的是收集所有.error
类文本迭代错误meassge和concat并显示字符串,如下面的代码。在获得dom中存在的错误类之后输入代码,否则它将无法工作。
var str = '';
$('.error').each(function() {
str += $(this).text() + ' ';
});
console.log(str); // it concats all the error message
在html中创建一个像
一样的div<div class="concaterror"></div>
$('.error').hide(); // Hide all the error class
$('.concaterror').html(str); // append the concat error messages
这里隐藏整个.error
类。创建一个div请在此处附加str
变量并显示您想要的位置。