1

我一直在 Javascript 中设置我的 jQuery Validate 规则,就像在这篇文章中一样: http ://www.raymondcamden.com/index.cfm/2009/2/10/An-Introduction-to-jQuery-and-Form-Validation -2

我将规则存储在一个名为 validationRules 的 jsony 对象中,然后在调用 Validate 插件时传递规则:

$("#myForm").validate(validationRules);

稍后,我想根据用户交互以编程方式更改值,如下所示:

validationRules.rules.Quantity.min=10;

即使值已更新,Validate 也不接受新值。我也试过,重新调用插件:

$("#myForm").validate(validationRules);

但这没有帮助。

我可以直接与插件对话:

$("#Quantity").rules("add", {min: 10});

它的行为与预期的一样。因此,我将使用该语法即时更改规则,但有人可以阐明我如何告诉 Validate 遵守validationRules 中的更新规则吗?

4

1 回答 1

2

我有同样的问题,我花了很多时间试图解决它。最后,我在验证插件创建者的 GitHub 帐户中找到了一个技巧:

var $form       = $('#formId'),
    newRules    = {rules...},
    newMessages = {messages...};

$.each(newRules , function(key, value) {
    newRules [key] = $.validator.normalizeRule(value);
});
$.extend( $form.validate().settings.rules, newRules );
$.extend( $form.validate().settings.messages, newMessages );

我不太确定这些消息,我现在正在使用它并且似乎工作正常。这是您可以阅读更多相关信息的链接: https ://github.com/jzaefferer/jquery-validation/issues/214

于 2012-09-13T23:46:21.867 回答