Mar*_*.io 28 javascript validation jquery jquery-validate
假设我有一个自定义AddMethod到jQuery Validate,如:
$.validator.addMethod('min-length', function (val, element) {
// do stuff
// the error message here needs to be dynamic
}, 'The field cannot be less than than '
+ element.attr('data-min') + // it is within the closure, but it can't grab it
' length.');
Run Code Online (Sandbox Code Playgroud)
我无法找到一种方法来获取有问题的元素变量,并从中获取任何值.我在这里错过了什么?
Bar*_*mar 68
从查看验证器源代码,我认为应该这样做:
$.validator.addMethod('min-length', function (val, element) {
return this.optional(element) || val.length >= $(element).data('min');
}, function(params, element) {
return 'The field cannot be less than than ' + $(element).data('min') + ' length.'
});
Run Code Online (Sandbox Code Playgroud)
在原始代码中,消息字符串不在闭包内; 闭包是第二个参数addMethod,错误信息是第三个参数.
小智 5
首先,我感谢Barmar的回答。
如果您只是认为,则可以将任何带有jquery验证消息的param值都使用,您可以仅调用消息实例。
这是代码
jQuery.validator.addMethod("custom_min", function(value, element, param) {
value = replaceAll(value, ',' , '');
return this.optional( element ) || value >= param;
},jQuery.validator.messages.min );
Run Code Online (Sandbox Code Playgroud)
在jQuery验证中
jQuery('#form_id').validate({
rules: {
'field_name': {
required: true,
number: true,
custom_min: 1000
}
});
Run Code Online (Sandbox Code Playgroud)
因此,如果您输入的值小于1000,则会引发错误消息,“请输入大于1000的值(您在验证中输入的值)”。如果您的验证需要对任何当前方法进行任何修改,则此方法会更快您正在使用多种语言进行开发。
| 归档时间: |
|
| 查看次数: |
34376 次 |
| 最近记录: |