【问题标题】:Knockout Validation on a dynamic form动态表单上的淘汰赛验证
【发布时间】:2013-01-29 01:43:42
【问题描述】:

我有一个表单,其中包含根据某些条件可见的字段(此处不相关)。 发生的情况是,我想根据字段的可见性对其进行验证。

到目前为止,我还没有设法更改或禁用规则(例如必需的)。

这是一个例子:

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

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

谢谢

【问题讨论】:

  • 数据绑定参数不需要括号

标签: c# asp.net-mvc knockout.js knockout-validation


【解决方案1】:

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

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

【讨论】:

  • 我尝试将 required 设置为 'false' 但它不起作用,所以我想这不会起作用。
  • 你的意思是把 required 和 message 分开?我试过了,但它不起作用。我已经检查过了,emailRequired() 是错误的,但我仍然收到验证错误
  • 找到了一个你想要的例子,我想。
猜你喜欢
  • 2012-12-25
  • 2017-09-26
  • 2013-06-23
  • 2023-03-09
  • 2012-02-18
  • 2014-08-21
  • 2013-02-18
  • 2011-08-09
  • 2012-10-17
相关资源
最近更新 更多