淘汰赛 - 剑道小部件与淘汰赛验证不起作用

时间:2014-01-17 04:34:45

标签: knockout-validation knockout-kendo

我需要使用knockout-kendo实现淘汰验证。

我有这个HTML:

<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,但我无法让它工作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

看起来问题是没有为knockout-kendo标签自动生成<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();
相关问题