2013-02-13 90 views
0

我得到一個表單,其中的字段根據某些條件(在此不相關)進行顯示。 會發生什麼,我想根據他們的知名度對領域進行驗證。在動態表單上進行基因敲除驗證

到目前爲止,我還沒有設法改變或禁用規則(如需要)。

下面是一個例子:

<form> 
<input type='text' data-bind='{value : name}' /> 
<span class='errorMsg' data-bind='validationMessage: name'></span> 
<input type='text' data-bind='{value : email, visible: isEmailVisible}' /> 
<span class='errorMsg' data-bind='validationMessage: email'></span> 
<input type='checkbox' value='true' text='Receive an email' /> 
<input type='submit' value='Send' /> 
</form> 

在我的JS,我有一個觀察的性能視圖模型來控制表單字段的知名度。當複選框打開時,顯示電子郵件輸入並因此需要。但是,如果未選中,則驗證規則應允許輸入空電子郵件。

所以在我的視圖模型,我會像

self.email = ko.observable().extend({ required : {message : 'Should not be empty'}}); 

的問題是:如何更改或刪除驗證規則?

感謝

+0

你不需要我試着周圍設置你的數據綁定參數 – 2013-02-14 13:47:29

回答

4

看來,有一個onlyIf參數,您可以使用驗證器使用方法:

ko.observable().extend({ required : {message : 'Should not be empty', 
    onlyIf: [viewModel.Observable bound to checkbox]}}); 
+0

括號需要'虛假',但它不起作用,所以我想這也不會起作用。 – Arnaud 2013-02-13 14:04:07

+0

與我使用的格式相同嗎? – 2013-02-13 14:05:05

+0

你的意思是分離所需的信息?我試過了,但它不起作用。我檢查過,emailRequired()是錯誤的,但我仍然得到一個驗證錯誤 – Arnaud 2013-02-13 15:15:23