在将元素添加到模型后发生敲除验证

时间:2013-03-08 01:49:12

标签: knockout.js

这是一个显示我问题部分的小提琴:

http://jsfiddle.net/Nv2pW/

有一个带按钮的输入框;输入框应验证强制和电子邮件地址。在我的实时网站中,它确实进行了验证,但是直到输入框中的项目被添加到emailCC数组之后,这已经太晚了 - 如果它不是有效的电子邮件地址,我不希望它在模型中。 (在小提琴中,验证根本没有触发,但我不确定为什么)。如果输入框项无效,如何阻止输入框项添加到emailCC数组?

部分js代码在这里:

 function emailViewModel() {
 var self = this;
 self.emailAddress = ko.observable("test").extend({
     required: true
 }).extend({
     email: true
 });
 self.emailCC = ko.observableArray([]);

 self.addCC = function () {
     if (this.emailAddress() !== "")
     self.emailCC.push(new EmailAddress(self.emailAddress()));
     self.emailAddress(""); //clear text box
 };
 }
 ko.applyBindings(new emailViewModel());

 function EmailAddress(name) {
 this.name = name;
 }

1 个答案:

答案 0 :(得分:1)

我做了修改以解决您的问题,这是正常的。

使用

  isValid() method achieved your objective

check this fiddle

如果它解决了您的问题,请随意将其标记为答案并点击上传链接。