2012-07-31 71 views
18

我正在嘗試使用帶條件語句的KnockoutValidation。見下面的代碼:KnockoutValidation和有條件的必需規則

self.transactionType = ko.observable('Option1'); 

self.ConditionalField = ko.observable().extend({ 
    required: true, 
    onlyIf: self.transactionType = ="Option2" 
}); 

不幸的是,這是行不通的。如果transactionType的值爲'Option2',我只想要ConditionalField

使用條件驗證與knockout.validation.js的最佳方式是什麼?

回答

37

我解決了它。

首先,我在定義conditionalfield後犯了錯誤,宣佈transactiontype。工作的最終代碼如下所示:

self.transactionType = ko.observable("Option1"); 

self.conditionalField = ko.observable().extend({ 
    required: { 
    onlyIf: function() { 
     return self.transactionType() == "Option2"; 
    } 
    } 
}); 
+8

那麼,據說托馬斯愛迪生在發明了第一個商用實用白熾燈之前嘗試了3000次失敗。 http://en.wikipedia.org/wiki/Thomas_Edison#cite_note-28,但我發現你的答案就像照亮...謝謝&+ 1 – 2013-01-08 13:39:43

+2

可悲的是,這只是如果東西沒有記錄在任何地方。謝謝! – 2013-04-03 20:35:57

+2

[onlyIf documentation](https://github.com/Knockout-Contrib/Knockout-Validation/wiki/Conditional-Validation-with-onlyIf-parameter) – Homer 2013-12-12 20:59:45