你能看一下这张http://jsbin.com/osolo/吗?
如果你在Min Age中输入一个字母而不是数字,然后在自定义验证方法中使用正则表达式使用jquery验证器提交此验证,这是可行的,但我现在希望使其更具动态性。
在自定义验证方法中,行
var data = $(element).metadata();
从被验证的元素中获取元数据,我想要做的是使用
data.validateOptions.regex
作为要测试的正则表达式(我看不出这有什么问题),我能看到的问题是,如果字段没有验证,而不是使用在调用时提供的消息
jQuery.validator.addMethod(name, method, message)
我想用
data.validateOptions.message
作为自定义方法中的错误消息,谁能给我指出正确的方向?
谢谢
OneShot
发布于 2010-08-31 11:44:44
我认为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);
})();
发布于 2009-10-28 21:39:36
创建一个闭包怎么样?
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
不就是通过引用传入的吗?
https://stackoverflow.com/questions/1636530
复制相似问题