JQuery.Validate使用消息添加动态规则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery.Validate使用消息添加动态规则相关的知识,希望对你有一定的参考价值。
我有一个表格,我正在使用jquery.validate。我最初使用一组规则和自定义消息调用validate ...
$("#formName").validate( {
rules: {
myExistingInput: {
required: true
}
},
messages: {
myExistingInput: {
required: "Enter something"
}
},
ignore: null, // include hidden fields (see below)
submitHandler: function(form) {
// do stuff
},
invalidHandler: function(event, validator) {
// do stuff (some of the fields may have been hidden by a collapsible panel
// if there is an error on one of those fields, expand the panel so the error
// becomes visible)
}
});
稍后,我动态地向表单添加字段,并为这些字段添加规则...
$("#formName").append(...);
$("#newInputName").rules("add", {
required: true,
messages: {
required: "Enter something else"
}
});
如果我然后提交表单,我从jquery.validate中得到一个错误...
检查元素newInputName时发生异常,检查'messages'方法.TypeError:无法获取未定义或空引用的属性'call'
在浏览器中调试,我可以看到错误是从“check”函数中引发的,并且“method”变量被设置为“messages”。
如果我从规则调用中删除消息(“添加”,...
$("#newInputName").rules("add", {
required: true
});
它按预期工作,但显然我现在没有自定义错误消息。
我在SO上看到了很多例子,表明我的语法是正确的。有什么建议?
BTW:jQuery Validation Plugin - v1.11.0 - 2013年2月4日
您发布它时,您的代码似乎正常工作,没有错误。
准备好DOM的演示:http://jsfiddle.net/UZTnE/
使用PageInit和jQuery Mobile的演示:http://jsfiddle.net/xJ3E2/
$(document).on("pageinit", function () {
$('#myform').validate({ // initialize the plugin
rules: {
field1: {
required: true
}
},
messages: {
field1: {
required: "Enter something"
}
}
});
$('[name*="field"]').each(function () {
$(this).rules('add', {
required: true,
messages: {
required: "Enter something else"
}
});
});
});
html:
<form id="myform">
<input type="text" name="field1" />
<input type="text" name="field2" />
<input type="submit" />
</form>
BTW:
这个...
ignore: null, // include hidden fields
应该...
ignore: [], // include hidden fields
见:jQuery Validate - Enable validation for hidden fields
$(document).ready(function(){
$("#controlId").rules("add", {
required : true,
messages : { required : 'field is required.' }
});
});
作为这个旧问题的答案,我喜欢这样来获取规则对象内的消息。
添加规则后,您可以添加如下消息:
var inputRules = $('input').rules();
inputRules.messages = {required: 'your message'};
祝好运!
以上是关于JQuery.Validate使用消息添加动态规则的主要内容,如果未能解决你的问题,请参考以下文章
jquery validate 动态增加删除验证规则(转载)
jQuery validate:如何为正则表达式验证添加规则?