2013-02-13 78 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