我在重新添加使用Jquery Validation插件创建的自定义方法时遇到问题。 我在jsfiddle上发布了一个简单的例子,以显示我的表单基本上做了什么... 用户有一个表单,他们从文本字段中选择一个学校(实际上是自动完成)。 表单有一个自定义规则,以便通过.blur事件设置的school_id(实际上自动完成设置了school_id,但这只需要一个简单的例子)。
现在他们可能会转而从常规下拉菜单中选择学校/如果这是他们喜欢的选择(通过点击链接)。所以我删除了school_id验证规则,并为下拉列表添加了验证规则。但是,如果用户切换回旧版本,我似乎无法重新添加自定义自动填充规则。
我在这里的代码的具体部分在这里:
$("#school_autocomplete").rules("add", {
school_id_required: "",
messages: {
required: "* Please type and pick a school"
}
});
这是一个简单的功能实例:
http://jsfiddle.net/armyofda12mnkeys/4jsgQ/6/
尝试去那里^,然后立即点击提交,(你得到一个错误,这是正确的)。 然后单击“显示DropDown”,然后单击“提交”(您将获得新添加的错误,这是正确的), 然后单击“显示文本(自动填充)”,然后单击“提交”。您现在收到“警告:没有为school_autocomplete定义消息”,这是不正确的。
通常在 school_id_required:“”行上,你会有 required:true 或“regex”:“^ some。+ regex $ “我相信......但是对于自定义规则,当我传递”“,false / true,”blah“作为测试值时,它似乎无法正常工作。我看到一个例子,其中有人使用像 school_id_required:[“someParam”] 这样的东西,所以我尝试给它一个伪值来传递一个数组也无济于事。
感谢您的帮助!
答案 0 :(得分:1)
你可以尝试这个,这对我有用,你将使用设置对象,然后分配新的规则和消息:)
var settings = $("#school_autocomplete").validate().settings;
$.extend(settings, {
rules: _Rules,
messages: _Messages
});
var validated = $('#school_autocomplete').valid();
祝你好运。