如何自定义jquery验证引擎消息错误

Lui*_*uis 6 html jquery jquery-validation-engine

我正在尝试使用validationEngine插件制作自定义的错误消息

插件的链接

默认情况下,当您使用以下内容时:

<input value="" class="validate[required]" type="text" name="name" id="name"/>
Run Code Online (Sandbox Code Playgroud)

而你没有输入任何东西,你会得到消息:"*字段必需",这很好,但我想要的东西:"*名称要求"......

我只在我的.js文件中有这个:

$("#Form_Name").validationEngine();
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,我已经有几天试图完成这个...

Ian*_*way 5

您需要做的就是修改jquery.validationEngine-en.js中的消息(或者如果不是英语,则是您想要的任何语言).请记住,您更改的验证类型的所有字段都将显示相同的消息.

这也是您可以添加自己的自定义验证和消息的地方.

\编辑 - 啊,我明白你的意思了.好吧,我不能相信这一点,但是一家名为iPragmaTech的公司使用该领域的title属性提出了解决相同问题的解决方案.

它们覆盖了来自validationengine的buildprompt函数,并添加了选择自定义错误消息的功能.

以下是他们的代码:

var buildPrompt = $.validationEngine.buildPrompt;
$.validationEngine.buildPrompt = function(caller, promptText, type, ajaxed) {
  // Get the rules to map the message for a method
  var rulesRegExp = /\[(.*)\]/;
  var getRules = rulesRegExp.exec($(caller).attr('class'));
  var str = getRules[1];
  var pattern = /\[|,|\]/;
  var rules = str.split(pattern);
  //Check if title attribute present in the element
  //otherwise we shall use default error message
  if ($(caller).attr('title')) {
    var getMessages = rulesRegExp.exec($(caller).attr('title'));
    var str = getMessages[1];
    var pattern = /\[|,|\]/;
    var messages = str.split(pattern);

    var j = 0;
    newPrompt = "";
    for ( var i = 0; i < rules.length; i++) {
     rules = $.validationEngine.settings.allrules[rules[i]]
      if (rules) {
        if (promptText.indexOf(rules.alertText) != -1) {

          newPrompt += "
<p class="errorMsg">" + messages[j] + "

";

        }
        j++;
      }
    }
    promptText = newPrompt;
  }

  buildPrompt(caller, promptText, type, ajaxed);
}
</p>
Run Code Online (Sandbox Code Playgroud)

他们在'title'属性中添加了错误消息,这样可以灵活地为不同的字段自定义错误消息.以下是可以添加自定义错误消息的示例:

<input value="" class="validate[required,custom[noSpecialCaracters],length[0,20]]" name="user" id="user" title="[* Desired username is required,* No special caracters allowed for  Desired username,* Desired username should have characters between 0 and 20]" type="text">
Run Code Online (Sandbox Code Playgroud)

我希望这能解决你的问题.