2013-08-17 78 views
2

使用jQuery验证插件我使用的规则equalTo验证字段如下:JQuery验证领域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 filled and jQuery validation depends

+0

由于问题的一部分是一个拼写错误,请包括HTML标记,使这个问题仍然有利用价值后不久链接去死。谢谢。 – Sparky

回答

3

有你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'." 
     } 
    } 

}); 
+0

太好了 - 谢谢。得到它在小提琴工作,但不是在形式,所以我会工作在那个或另一个问题:)谢谢 – Ray

+0

我正要回答这个,但Nirazul打我。 :)您也可以自定义消息以提供更多信息,如您在此小提琴中所看到的:http://jsfiddle.net/SneAF/14/ – RobM