动态表单上的淘汰验证
本文关键字:淘汰 验证 表单 动态 | 更新日期: 2023-09-27 17:59:00
我有一个表单,其中的字段根据某些条件可见(此处不相关)。实际情况是,我希望根据字段的可见性对其进行验证。
到目前为止,我还没有设法更改或禁用规则(如必需的)。
这里有一个例子:
<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'}});
问题是:如何更改或删除验证规则?
感谢
似乎有一个onlyIf参数可以与验证器一起使用:
ko.observable().extend({ required : {message : 'Should not be empty',
onlyIf: [viewModel.Observable bound to checkbox]}});