2014-01-17 120 views
2

我需要实施knockout-kendo淘汰赛验证。淘汰赛 - 剑道小工具与淘汰赛验证不起作用

我有这个网站:

<textarea class="k-textbox" data-bind="value: description"></textarea> 
<input data-bind="kendoComboBox: { 
        data: myOptions, 
        value:myOptionId, 
        dataTextField: 'MyOptionName', 
        dataValueField: 'MyOptionId'}"/> 
<input data-bind="kendoDatePicker: {value: dueDate}"/> 

的Javascript:

... 
viewModel: { 
    description: ko.observable('').extend({ required: true }), 
    dueDate: ko.observable('').extend({ required: true }), 
    myOptions: ko.observableArray([]), 
    myOptionId: ko.observable('').extend({ required: true }) 
} 
... 
    ko.applyBindingsWithValidation(self.viewModel, $ctx[0]); 

验证工作正常,说明字段,绑定到文本区域;但它不适用于comboBox或datePicker。

我已经检查过这个文档,还有this jsFiddle,但是我一直无法让它工作。

任何帮助将不胜感激。

回答

3

看起来问题是<span class="validationMessage" data-bind="validationMessage: dueDate"></span>没有为knockout-kendo标签自动生成。只需添加每淘汰赛剑道元素的标签,例如:

<input data-bind="kendoComboBox: { 
        data: myOptions, 
        value:myOptionId, 
        dataTextField: 'MyOptionName', 
        dataValueField: 'MyOptionId'}"/> 
<span class="validationMessage" data-bind="validationMessage: value:myOptionId"></span> 
<input data-bind="kendoDatePicker: {value: dueDate}"/> 
<span class="validationMessage" data-bind="validationMessage: dueDate"></span> 

记住你的视图模型前放:

ko.validation.configure({ 
    registerExtenders: true, 
    messagesOnModified: true, 
    insertMessages: true, 
    parseInputAttributes: true, 
    messageTemplate: null 
}); 
ko.validation.registerExtenders();