Knockout.js 比较并验证两个下拉列表中的选定值
我想验证下拉列表中的选定项是否未在其他下拉列表中选定 我创建了一个小提琴来尝试,但它不起作用:Knockout.js 比较并验证两个下拉列表中的选定值,knockout.js,knockout-validation,Knockout.js,Knockout Validation,我想验证下拉列表中的选定项是否未在其他下拉列表中选定 我创建了一个小提琴来尝试,但它不起作用: ko.validation.configure({ decorateElement: true, registerExtenders: true, messagesOnModified: true, insertMessages: false, parseInputAttributes: true, messageTemplate: null });
ko.validation.configure({
decorateElement: true,
registerExtenders: true,
messagesOnModified: true,
insertMessages: false,
parseInputAttributes: true,
messageTemplate: null
});
var ViewModel = function () {
var self = this;
self.databases = ko.observableArray([{
Name: "DB1",
Id: 1
}, {
Name: "DB3",
Id: 3
}]);
self.databases2 = ko.observableArray([{
Name: "DB3",
Id: 3
}, {
Name: "DB4",
Id: 4
}]);
self.selectedDatabase = ko.observable();
self.selectedDatabase2 = ko.observable();
/* self.selectedDatabase = ko.observable().extend({
validation: {
validator: notEqual,
params: self.selectedDatabase2
}
});
self.selectedDatabase2 = ko.observable().extend({
validation: {
validator: notEqual,
params: self.selectedDatabase2
}
});
var notEqual = function (val, other) {
return val =! other();
};
*/
ViewModel.errors = ko.validation.group(self);
return self;
};
ko.applyBindings(new ViewModel());
我已经更新了您的
您必须将以下代码上移,以便在分配任务时可用
var notEqual = function (val, other) {
console.log(other());
return val =! other();
};
另一件事是,您将self.selectedDatabase2 2次分配给validations的params属性
祝您好运即使未选择相同的项目,第二个下拉列表也会变为红色:(