ko.validation总是未定义的

时间:2014-04-14 18:51:07

标签: javascript jquery validation knockout.js

这是我第一次使用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/ 但它不适用于我的环境。!

0 个答案:

没有答案