1

我的视图模型有一个ko.observable存储对话状态对象的成员。每个对话框对象都有与对话框中的输入字段相对应的各种成员。我想使用 KnockoutJS 验证插件向对话框添加验证。

但是,我不想将验证添加到我的整个视图模型中,而只是添加到我的对话框中。当我尝试像这样扩展对话框时:

    this.dialog = ko.observable(new RegistrationDialog(self)).extend({validatable: true});

事情不正常: isValid() 和 errors() 方法没有定义,验证工作不正常。我创建了一个jsfiddle来说明这一点。当我按开始按钮时,对话框打开(请原谅缺少 CSS),但按 Enter 不会生成任何错误消息。电子邮件验证也无法正常工作,显示消息“真实不是正确的电子邮件地址”。

4

2 回答 2

2

我会使用文档

this.dialog = ko.validatedObservable(new RegistrationDialog(this));

然后修复小提琴中的一些错误:

  • 数据盲
  • 点击表单上的处理程序(而不是提交,我假设)
  • enable: isValid在您应该拥有的注册按钮上enable: isValid()(由于修复了表单提交绑定,我还删除了点击绑定)

我想就是这样。在这里更新小提琴

于 2012-07-07T01:34:01.653 回答
1

这是一个工作版本:

http://jsfiddle.net/t9zLH/8/

我在里面添加了一个错误组并在允许您的注册方法成功之前检查它,否则我会显示错误。

于 2012-07-07T01:09:33.427 回答