有一个简单的方法来改变默认的错误值在jQuery验证插件?

我只是想重写错误消息,以使我的应用程序更加个性化——我有很多字段,所以我不想为字段x单独设置消息……我知道我能做到!


当前回答

另一种可能的解决方案是遍历字段,向每个字段添加相同的错误消息。

$('.required').each(function(index) {
  $(this).rules("add", {
    messages: {
      required: "Custom error message."
   }
  });
});

其他回答

删除所有默认错误消息

$.validator.messages.required = "";

最新版本有一些不错的内联功能。

如果它是一个简单的输入字段,您可以像这样添加属性data-validation-error-msg

data-validation-error-msg="Invalid Regex"

如果你需要一些更重的东西,你可以使用一个带有传递给validate函数的所有值的变量来完全自定义东西。详细信息请参考这个链接:https://github.com/victorjonsson/jQuery-Form-Validator#fully-customizable

因为我们已经使用了JQuery,我们可以让页面设计者在标记中添加自定义消息,而不是代码:

<input ... data-msg-required="my message" ...

或者,更通用的解决方案是在所有字段上使用一个简短的data-msg属性:

<form id="form1">
    <input type="text" id="firstName" name="firstName" 
        data-msg="Please enter your first name" />
    <br />
    <input type="text" id="lastName" name="lastName" 
        data-msg="Please enter your last name" />
    <br />
    <input type="submit" />
</form>

然后代码包含如下内容:

function getMsg(selector) {
    return $(selector).attr('data-msg');
}

$('#form1').validate({
    // ...
    messages: {
        firstName: getMsg('#firstName'),
        lastName: getMsg('#lastName')
    }
    // ...
});

这招对我很管用:

$.validator.messages.required = 'required';

我从未想过这是如此容易,我正在从事一个处理此类验证的项目。

下面的答案将对那些想要轻松更改验证消息的人有很大帮助。

下面的方法使用“占位符名称”来代替“This Field”。

你可以很容易地修改东西

   // Jquery Validation   
   $('.js-validation').each(function(){

       //Validation Error Messages 

       var validationObjectArray = [];

       var validationMessages = {};

       $(this).find('input,select').each(function(){  // add more type hear

          var singleElementMessages = {};

          var fieldName = $(this).attr('name');

          if(!fieldName){  //field Name is not defined continue ;
              return true;
          }


          // If attr data-error-field-name is given give it a priority , and then to placeholder and lastly a simple text

          var fieldPlaceholderName = $(this).data('error-field-name') || $(this).attr('placeholder') || "This Field";

          if( $( this ).prop( 'required' )){

              singleElementMessages['required'] = $(this).data('error-required-message') || $(this).data('error-message')  || fieldPlaceholderName + " is required";

          }

          if( $( this ).attr( 'type' ) == 'email' ){

              singleElementMessages['email'] = $(this).data('error-email-message') || $(this).data('error-message')  || "Enter valid email in "+fieldPlaceholderName;

          }       



          validationMessages[fieldName] = singleElementMessages;

       });


       $(this).validate({
          errorClass   : "error-message",
          errorElement : "div",
          messages     : validationMessages  
       });  
   });