Javascript 修改jQuery验证消息
如何根据验证时使用的逻辑更改jQuery验证消息?但是,我的尝试如下所示,Javascript 修改jQuery验证消息,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,如何根据验证时使用的逻辑更改jQuery验证消息?但是,我的尝试如下所示,this.extra显示为未定义 $.validator.addMethod("someMethod", function(value, element, params) { //Logic to validate and determine message goes here... var valid=false; this.extra="bla"; return valid; }
this.extra
显示为未定义
$.validator.addMethod("someMethod", function(value, element, params) {
//Logic to validate and determine message goes here...
var valid=false;
this.extra="bla";
return valid;
}, $.validator.format("message plus "+this.extra)
);
是的,你可以这样做,但这有点棘手。您需要使用或将信息与元素关联
$.validator.addMethod("someMethod", function(value, element, params) {
//Logic to validate and determine message goes here...
var valid=false;
$(element).data('extra', "bla");
return valid;
}, function(params, element) {
return $.validator.format("message plus " + $(element).data('extra'))
}
);
当从函数内部调用this.extra时,它不在
$.validator.format(“message plus”+this.extra)
的范围之外吗?能否在函数内部调用$.validator.format(“message plus”+this.extra)
?@DerekPollard。它似乎超出了范围。我“可以”在函数内部调用它,但需要将其作为第三个参数传递给addMethod()
。如果您将全局变量全部设置在函数外部,然后在函数运行后,将全局变量设置为this.extra
值,然后在$.validator.format(“message plus”+this.extra)
部分,将其更改为:$.validator.format(“message plus”+globalVariable)
通过将第三个参数转换为函数来执行此操作。@Sparky请查看您所指示的答案,以回答问题,并验证其是否准确。据我所知,它不是因为元素
不是jQuery对象,也不支持数据()
。但是,关于将第三个参数转换为函数的部分是关键部分,并且确实起作用。元素
不是jQuery对象,这两个问题的答案都不起作用。然后可以使用$(元素)
。或element.setAttribute