【发布时间】:2014-01-28 12:27:23
【问题描述】:
我有一个表格:
并实现 KnockoutJS Validation。一切都是按照文档应用的,但即使我留下空白字段等,它也总是返回有效的。
这是代码:
ko.validation.rules.pattern.message = 'Invalid.';
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
var initialData = [
{ firstName: "John", fathersLast: "Smith", country : ""
}
];
var Contact = function (contact) {
var self = this;
self.firstName = ko.observable(contact.firstName ).extend({ required: true, message: '* required' });;
self.fathersLast = ko.observable(contact.fathersLast ).extend({ required: true, message: '* required' });;
self.country = ko.observable(contact.country ).extend({ required: true, minLength: 2, message: '* required' });
};
var ContactsModel = function(contacts) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function(i) {
return new Contact(i);
}));
self.errors = ko.validation.group(self.contacts);
self.addContact = function() {
if (self.errors().length == 0) {
alert('Thank you.');
} else {
alert('Please check your submission.');
self.errors.showAllMessages();
}
self.contacts.push({
firstName: "",
fathersLast: "",
country: ""
});
};
self.removeContact = function(contact) {
self.contacts.remove(contact);
};
};
ko.applyBindings(new ContactsModel(initialData));
下面是工作示例:http://jsfiddle.net/8Hude/3/
任何线索为什么它不能正常工作?
谢谢。
【问题讨论】:
-
您是如何实现验证的?您指的是哪些文档?
-
我只是让它工作......但添加的新元素没有验证......也许我需要为它们订阅验证但我不知道如何。 jsfiddle.net/8Hude/6
-
我相信这个问题已经在关于这个实现的original问题中得到解决。
标签: json knockout.js knockout-validation