jquery验证程序addmethod自定义消息

jquery验证程序addmethod自定义消息,jquery,validation,Jquery,Validation,我为jquery的验证器插件创建了一个方法,它的工作原理与远程规则类似。区别在于我希望显示一条动态错误消息(基于ajax响应) 它工作……有点……它设置消息,但最初不显示它(如果再次验证字段,则显示消息) 有什么建议吗 (可能远程规则提供了此功能…我在文档中找不到任何内容)以下是解决方案…需要调用对象的淋浴RORS函数: jQuery.validator.addMethod("duplicate", function(value, element, params) { var vali

我为jquery的验证器插件创建了一个方法,它的工作原理与远程规则类似。区别在于我希望显示一条动态错误消息(基于ajax响应)

它工作……有点……它设置消息,但最初不显示它(如果再次验证字段,则显示消息)

有什么建议吗


(可能远程规则提供了此功能…我在文档中找不到任何内容)

以下是解决方案…需要调用对象的淋浴RORS函数:

jQuery.validator.addMethod("duplicate", function(value, element, params) { 
    var validator = this;
    params.data[element.name] = value;
    $.post(params.url, params.data, function(response) {
        if (response == 'true'){ return true; }
        else {
            var errors = {};
            errors[element.name] =  response;
            validator.showErrors(errors);
            return false;
        }
    }, 'text');
}, '');

摘自jquery.validate.js(第917-919行)中的“remote”

也在寻找解决方案,并找到了

在原始示例中,如果更改此行:

object_settings.messages[element.name] = response;
为此:

$.validator.messages.duplicate = response;
这对我有用。我在这里找到的:

我遵循了网站中提到的流程并成功了

您必须使用动态消息调用该方法,以便它显示该消息。比如说

$.validator.addMethod("validatePremium", function(value, element, param) {

    if( Condition )    

     {
       $.validator.messages.validatePremium = "your message here";
       //enter code here
       //...
       return false;
     }

    }, $.validator.messages.validatePremium);
这对我有用

var errorMsg = '', $valid = false;
$.validator.addMethod("methodName",function(val, elem){
   $.ajax({
      url:'your_script.php',
      type:"POST",
      dataType:"json",
      data : {},
      success:function(response){
         if(response.success == false){
            errorMsg = response.msg;
            $valid = response.success;
         }
         else{
            $valid = true;
         }
      }
   });
   $.validator.messages["methodName"] = errorMsg;
   return $valid;
},'');
确保用方法名替换“methodName
在这种情况下,两个位置(addMethod函数第1个参数和addMethod函数体$.validator.messages[“methodName”])都是“重复的”

当我这样做时,默认错误消息是过度编写自定义消息。对我来说,最好的答案是用符咒解决我的问题:链接:谢谢Kiran
var errorMsg = '', $valid = false;
$.validator.addMethod("methodName",function(val, elem){
   $.ajax({
      url:'your_script.php',
      type:"POST",
      dataType:"json",
      data : {},
      success:function(response){
         if(response.success == false){
            errorMsg = response.msg;
            $valid = response.success;
         }
         else{
            $valid = true;
         }
      }
   });
   $.validator.messages["methodName"] = errorMsg;
   return $valid;
},'');