这是我第一次使用ko验证。我不知道我错过了什么,我试图按照knockout.validation github中的说明,但仍然没有运气。我一直在努力奋斗超过一小时,希望我能在这里得到帮助。
我在prerender事件中加载我的javascript lib:
protected void Page_PreRender(object sender, EventArgs e)
{
DotNetNuke.Framework.ServicesFramework.Instance.RequestAjaxScriptSupport();
DotNetNuke.Framework.ServicesFramework.Instance.RequestAjaxAntiForgerySupport();
ClientResourceManager.RegisterScript(this.Page, this.ControlPath + "../Resources/javascript/knockout-2.3.0.js");
ClientResourceManager.RegisterScript(this.Page, this.ControlPath + "../Resources/javascript/knockout.validation.js");
}
我的观点模型:
var mynamespace = mynamespace || {};
mynamespace.Container = "viewModelDiv";
jQuery(document).ready(function () {
ko.validation.configure({
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
mynamespace.viewModel = {
//Data
firstName: ko.observable().extend({ required: true }) ,
// Behaviors
submit: function() {
if (mynamespace.viewModel.errors().length == 0) {
console.log('Thank you.');
} else {
console.log('Please check your submission.');
mynamespace.viewModel.errors.showAllMessages();
}
},
errors: function() {
ko.validation.group(this);
}
}; // end of view model
mynamespace.viewModel.errors = ko.validation.group(mynamespace.viewModel);
//ko.validation.registerExtenders();
ko.applyBindings(mynamespace.viewModel, jQuery("#" + mynamespace.Container).get(0));
});
所有js文件都已成功加载,我可以在浏览器中看到它们。 没有验证的绑定工作正常。
只是每当我点击ko.validation时,浏览器都会返回错误信息,说明ko.validation未定义。
确切的错误消息: *未捕获的TypeError:无法读取未定义的属性'configure'*
更新:我在jsfiddle上试过它,它正在工作! http://jsfiddle.net/cSxne/ 但它不适用于我的环境。!