我有一个表单,其中包含根据某些条件显示的字段(此处不相关)。 发生的事情是我希望根据其可见性对字段进行验证。
到目前为止,我还没有设法更改或禁用规则(例如必需的)。
以下是一个例子:
<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中,我有一个带有可观察属性的viewmodel来控制表单字段的可见性。选中此复选框后,将显示电子邮件输入,因此需要输入。但是,如果未选中,则验证规则应允许空的电子邮件输入。
所以在我的视图模型中,我会有像
这样的东西self.email = ko.observable().extend({ required : {message : 'Should not be empty'}});
问题是:如何更改或删除验证规则?
由于
答案 0 :(得分:4)
似乎有一个onlyIf参数可以与验证器一起使用:
ko.observable().extend({ required : {message : 'Should not be empty',
onlyIf: [viewModel.Observable bound to checkbox]}});