我正在使用Knockoutjs.com为“联系人编辑器”提供的示例。
http://jsfiddle.net/rniemeyer/gZC5k/
我正在使用完全相同的代码在我的网站上,现在需要验证丢失的信息提交。
下面是我想在表单上实现的验证规则:
我唯一能想到的是如何分析那些缺失的名字:
contacts().length = 0发布于 2015-12-10 08:49:58
您可以在视图模型中引入附加标志,例如"isValid":
self.isValid = ko.computed(function() {
if(self.contacts().length === 0) {
return false;
}
var allContactsHaveNames = self.contacts().filter(function(contact) {
return contact.firstName() !== "" && contact.lastName() !== "";
}).length === self.contacts().length;
return allContactsHaveNames;
});在里面做所有检查。
当然,这需要对标记进行更改:
<button data-bind='click: save, enable: isValid'>Save to JSON</button>以及可观察到的"firstName“和"lastName”字段:
ko.observableArray(ko.utils.arrayMap(contacts,函数(Contact){返回{ firstName: ko.observable(contact.firstName),lastName: ko.observable(contact.lastName),电话: ko.observableArray(contact.phones) };});
self.addContact = function() {
self.contacts.push({
firstName: ko.observable(""),
lastName: ko.observable(""),
phones: ko.observableArray()
});
};任何额外的检查都可以添加到"isValid“复合函数中。
您可以检查更新的小提琴。
如@Sam.C在注释中所建议的那样,您可以使用Knockout验证。
https://stackoverflow.com/questions/34189938
复制相似问题