2014-01-17 115 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();