2013-08-17 73 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