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)
任何帮助将不胜感激,我已经有几天试图完成这个...
您需要做的就是修改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)
我希望这能解决你的问题.