2

使用 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 packed and jQuery validation depends

4

1 回答 1

4

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

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

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

小提琴

$('#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'."
        }
    }

});
于 2013-08-17T21:51:45.173 回答