Knockout.js 敲除验证isValid始终返回true
我不熟悉使用knockout,我正在尝试让验证插件工作。但是,IsValid总是返回回合。我也试过了 ViewModel.errors().length==0 但它总是零Knockout.js 敲除验证isValid始终返回true,knockout.js,knockout-validation,Knockout.js,Knockout Validation,我不熟悉使用knockout,我正在尝试让验证插件工作。但是,IsValid总是返回回合。我也试过了 ViewModel.errors().length==0 但它总是零 ko.validation.configure({ registerExtenders: true, messagesOnModified: true, insertMessages: true, parseInputAttributes: true,
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
这是我的其余代码,请帮助。 ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
ko.validation.configure({
registerExtenders:对,
messages:true,
insertMessages:true,
ParseInputAttribute:true,
messageTemplate:null
});
功能视图模型(调查){
//资料
var self=这个;
self.ProjectNumber=ko.observable();
self.StandardName=ko.observable();
self.Name=ko.observable().extend({required:true});
self.save=函数(){
log(“有效:”+ViewModel.errors.length);
if(ViewModel.errors().length==0){
$.ajax(@Url.Content(“~/Survey/TEST/”){
数据:ko.toJSON(self),
类型:“post”,
contentType:'应用程序/json',
数据类型:“json”
});
}否则{
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors=ko.validation.group(ViewModel);
ko.应用绑定(新ViewModel);
ViewModel
只是一个构造函数,而不是已实现模型的实例。所以您对构造函数应用了errors
属性,并尝试验证这个没有意义的构造函数
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
将save
方法中的ViewModel
更改为self
:
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
self.save = function () {
console.log("Valid: " + self.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
self.errors.showAllMessages();
}
};
…和:
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
// create instance of model
var vm = new ViewModel;
// setup validation for instance
vm.errors = ko.validation.group(vm);
// apply bindings
ko.applyBindings(vm);
ViewModel
只是一个构造函数,而不是已实现模型的实例。所以您对构造函数应用了errors
属性,并尝试验证这个没有意义的构造函数
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
将save
方法中的ViewModel
更改为self
:
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
self.save = function () {
console.log("Valid: " + self.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
self.errors.showAllMessages();
}
};
…和:
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
function ViewModel(survey) {
// Data
var self = this;
self.ProjectNumber = ko.observable();
self.StandardName = ko.observable();
self.Name = ko.observable().extend({ required: true });
self.save = function () {
console.log("Valid: " + ViewModel.errors.length);
if (ViewModel.errors().length == 0) {
$.ajax("@Url.Content("~/Survey/TEST/")", {
data: ko.toJSON(self),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
} else {
ViewModel.errors.showAllMessages();
}
};
}
ViewModel.errors = ko.validation.group(ViewModel);
ko.applyBindings(new ViewModel);
</script>
// create instance of model
var vm = new ViewModel;
// setup validation for instance
vm.errors = ko.validation.group(vm);
// apply bindings
ko.applyBindings(vm);
您是否尝试过console.log(“有效:”+ViewModel.errors().length)请注意括号。您是否尝试了console.log(“有效:”+ViewModel.errors().length)代码>注意括号。