【问题标题】:jQuery Validate, changing rules on the flyjQuery Validate,动态更改规则
【发布时间】:2012-05-30 17:52:53
【问题描述】:

我一直在 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 中的更新规则吗?

【问题讨论】:

    标签: jquery-validate


    【解决方案1】:

    我遇到了同样的问题,我花了很多时间试图解决它。最后我在验证插件创建者的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多