在knockout js输入字段中验证

时间:2014-08-20 09:06:40

标签: validation knockout.js knockout-validation

我使用KnockoutJS创建了一些输入字段,现在我想验证它们。

http://jsfiddle.net/sohimohit/43zkoszu/12/

我尝试使用验证插件,但它不起作用。 我添加了插件并按照提到的方式使用它,但没有得到解决方案。当您点击"添加字段"出现一个表格;我想要求name字段和branch id作为数字。但是,当我点击"添加字段"在表单验证之前,它不会被添加。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您没有正确进行验证。我推荐这种方法

设置一些设置

ko.validation.configure({
    insertMessages: false,
    decorateElement: true,
    errorElementClass: 'error-element',
    errorClass: 'error-element',
    errorsAsTitle: true,
    parseInputAttributes: false,
    messagesOnModified: true,
    decorateElementOnModified: true,
    decorateInputElement: true
});

使用validationElement

进行输入绑定
<input type="text" placeholder="Name" data-bind="value:name,validationElement:name">    
<input type="text" placeholder="Branch" data-bind="value:branch,validationElement:branch">

扩展可观察量

self.name = ko.observable().extend({required:true})
self.branch = ko.observable().extend({required:true,digit: true})

现在应用规则。我更喜欢小组

var data = [
    self.name,
    self.branch
]

self.Errors = ko.validation.group(data);

现在点击添加按钮包裹你的代码

self.Add = function(){
    if(self.Errors.length == 0){
        .
        .
        .
        //Your code here
    }else{
        self.Errors.showAllMessages()
    }
}

希望有所帮助