【问题标题】:jquery validate field equalTo element only if another field a certain valuejquery 仅当另一个字段具有特定值时才验证字段 equalTo 元素
【发布时间】:2013-08-17 20:00:55
【问题描述】:

使用 jquery validate 插件我使用规则 equalTo 来验证字段,如下所示:

$('#booking').validate({

ignoreTitle: true, 
rules: {
    payments: {
        equalTo: {
            param: "#sales",
            depends: function(element) { return $("#status").val() == 'invoiced'; }
        }
    },

}
});

我可以让它工作,但现在我只想在选择选项是特定值时应用此规则。我对此感到迷茫,不知道如何使 equalTo 规则可选依赖于另一个字段值

我看到了依赖规则,但找不到任何关于此的文档

谁能指点一下?

我已经创建了一个 jsfiddle 来提供帮助:

http://jsfiddle.net/longestdrive/SneAF/2/

谢谢

更新:我已经尝试过依赖但没有按预期工作:

还发现了一些类似/重复的问题: jQuery Validation - require field only if another field is filledjQuery validation depends

【问题讨论】:

  • 由于部分问题是拼写错误,请包含 HTML 标记,以便在链接失效后该问题仍然有用。谢谢。

标签: jquery jquery-validate


【解决方案1】:

您的depends-rule 中有一些错误:

  1. 您需要使用另一个选择器来获取当前选择的选项:
    $("#status option:selected")
  2. 从属选项的值是Invoiced,而不是invoiced

这是最终结果(正如 RobM 所提到的,您甚至可以指定更准确的错误消息:

Fiddle

$('#booking').validate({
    ignoreTitle: true, 
    rules: {
        payments: {
            equalTo: {
                param: '#sales',
                depends: function(element) { 
                    return $("#status option:selected").val() == 'invoiced'; 
                }
            }
        }
    },
    messages: {
        payments: {
            equalTo: "Payments must equal Sales when Status is 'Invoiced'."
        }
    }

});

【讨论】:

  • 太好了 - 谢谢。让它在小提琴中工作,但不是在形式上,所以我会解决那个或另一个问题:) 谢谢
  • 我正要回答这个问题,但 Nirazul 抢先了。 :) 您还可以自定义消息以提供更多信息,如您在此 Fiddle 中所见:jsfiddle.net/SneAF/14
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-18
  • 2017-11-22
相关资源
最近更新 更多