如果你在Min Age中输入一个字母而不是一个数字然后点击使用jquery验证器在自定义验证方法中使用正则表达式提交此验证,这可行,但我现在希望使它更有活力。
在自定义验证方法中的行
var data = $(element).metadata();
从正在验证的元素中获取元数据,我想要做的是使用
data.validateOptions.regex
作为要测试的正则表达式(我看不出这是一个问题),我能看到的问题是,如果字段没有验证,而不是使用调用时提供的消息
jQuery.validator.addMethod(name, method, message)
我想用
data.validateOptions.message
作为自定义方法中的错误消息,有人能指出我正确的方向吗?
由于
单次
答案 0 :(得分:1)
我认为Alex的答案不起作用,因为字符串在JS中是不可变的。
尽管如此。从Alex的代码开始,如果您创建一个包含数据对象(或只是一个消息字符串)的闭包以及一个返回该消息的函数,您可以将该函数作为第三个参数传递给addmethod调用。 像这样:
(function() {
var data = {};
var messager = function() {
return data.validateOptions.message;
};
jQuery.validator.addMethod("perorgproperty", function(value, element) {
debugger;
//alert('testing perorgproperty');
data = $(element).metadata();
return this.optional(element) || /^\d+$/i.test(value);
}, messager);
})();
答案 1 :(得分:0)
创建闭包怎么样?
var data = {};
jQuery.validator.addMethod("perorgproperty", function(value, element) {
debugger;
//alert('testing perorgproperty');
data = $(element).metadata();
return this.optional(element) || /^\d+$/i.test(value);
}, data.validateOptions.message);
只要在消息之前评估函数,message
是否只能通过引用传递?