Javascript 修改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; }

如何根据验证时使用的逻辑更改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;
    }, $.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