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'}});

问题是:如何更改或删除验证规则?

谢谢

4

1 回答 1

4

似乎有一个onlyIf参数可以与验证器一起使用:

ko.observable().extend({ required : {message : 'Should not be empty', 
    onlyIf: [viewModel.Observable bound to checkbox]}});
于 2013-02-13T13:50:22.577 回答