使用Jquery验证插件添加、删除、然后重新添加自定义方法

使用Jquery验证插件添加、删除、然后重新添加自定义方法,jquery,jquery-validate,Jquery,Jquery Validate,我在重新添加使用Jquery验证插件创建的自定义方法时遇到问题。 我在JSFIDLE上发布了一个简单的示例来说明我的表单的基本功能。。。 用户有一个表单,可以从文本字段中选择学校(实际上是自动完成)。 表单有一个自定义规则,以便通过.blur事件设置学校id(实际上,自动完成设置学校id,但这对于一个简单的示例就足够了) 现在,他们可以从常规下拉列表中选择学校/如果他们喜欢这样选择(通过单击链接)。因此,我删除了school_id验证规则,并为下拉列表添加了验证规则。但是,如果用户切换回旧的,我

我在重新添加使用Jquery验证插件创建的自定义方法时遇到问题。 我在JSFIDLE上发布了一个简单的示例来说明我的表单的基本功能。。。 用户有一个表单,可以从文本字段中选择学校(实际上是自动完成)。 表单有一个自定义规则,以便通过.blur事件设置学校id(实际上,自动完成设置学校id,但这对于一个简单的示例就足够了)

现在,他们可以从常规下拉列表中选择学校/如果他们喜欢这样选择(通过单击链接)。因此,我删除了school_id验证规则,并为下拉列表添加了验证规则。但是,如果用户切换回旧的,我似乎无法重新添加自定义自动完成规则

代码中i goof所在的特定部分如下所示:

$("#school_autocomplete").rules("add", {
  school_id_required: "",
  messages: {
    required: "* Please type and pick a school"
  }
});  
下面是一个简单的函数示例:

尝试转到那里^,然后立即单击提交(您会得到一个错误,这是正确的)。 然后单击“显示下拉列表”,然后单击提交(您会得到新添加的错误,这是正确的), 然后单击“显示文本(自动完成)”,然后单击提交。您现在会收到一条“警告:没有为学校定义任何消息\u自动完成”,这是不正确的

通常在学校id\u required:“行中,您会有类似required:true“regex”:“^some.+regex$”我相信。。。但对于一个自定义规则,当我通过“”、false/true、“blah”作为测试值时,它似乎无法正常工作。我看到一个例子,其中有人使用了类似于school\u id\u required:[“someParam”],因此我尝试给它一个假值以通过数组,但也没有效果


谢谢你的帮助

你能试试这个吗,这对我很有用,你将使用设置对象,然后分配新的规则和消息:)


祝您好运。

我相信我是通过对您的输入进行一些修改(只是在“var设置”部分使用了表单的id)才得到它的。再次感谢!(尽管我希望.rules('add')可以像非自定义规则一样“工作”):我很高兴您能够成功地实现这一点。我没有试过Rules.add,我会看看文档的,有时候很有用。
var settings = $("#school_autocomplete").validate().settings;

$.extend(settings, {
    rules: _Rules,
    messages: _Messages
});

var validated = $('#school_autocomplete').valid();