2013-08-07 199 views
1

上操作datePicker CSS我試圖根據其他小部件(複選框和數字文本框)啓用/禁用日期選擇器。當我嘗試使用true或false作爲參數調用DatePicker.enable()時,由於DatePicker尚未準備好,所以出現錯誤。看起來像Kendo小部件還沒有準備好,直到$(document).ready。當日期選擇器準備好被操縱時,是否有任何事件會告訴我?現在我正在使用setTimeout,這感覺真的是錯誤的。

這是我的代碼示例。

$(document).ready(function() { 
    ChangeDatePickersState(); 
}); 

function ChangeDatePickersState() { 
    var input = $('#MyCheckbox:checked') 
    var bool = input.length != 0 ? true : false; 
    EnableDatePickerForCheckbox('MyDatePicker', bool); 

function EnableDatePickerForCheckbox(inputName, inputValue) { 
    var datePicker = $('#' + inputName).data("kendoDatePicker"); 
    if (inputValue == true) { 
     datePicker.enable(true); 
    } 
    else { 
     datePicker.enable(false); 
     datePicker.value(null); 
    } 
} 

在此先感謝。

+0

我忘了提及使用劍道與MVC,但無論如何,我從他們的論壇得到了答案: Kendo UI小部件不初始化時觸發事件,但你可以指望他們的存在,如果你包括你的自定義document.ready處理程序中的邏輯,它被添加在頁面末尾。這將確保處理程序將在所有窗口小部件初始化語句之後執行,這也取決於document.ready。在這種情況下不需要setTimeout。 謝謝大家! –

回答

1

我忘了提及即時通訊使用劍道w ith MVC,但無論如何,我從他們的論壇上得到了答案:

Kendo UI小部件在初始化時不會觸發事件,但如果將自定義邏輯包含在document.ready處理程序中,則可以指望它們的存在,它被添加在頁面的末尾。這將確保處理程序將在所有窗口小部件初始化語句之後執行,這也取決於document.ready。在這種情況下不需要setTimeout。

某些窗口小部件(如Grid或ListView)可以初始化,但仍未填充到document.ready中。根據確切的場景,您可以使用相應的小部件的dataBound事件來執行自定義邏輯。

謝謝大家!

0

的DatePicker應儘快打電話

$("#MyDatePicker").kendoDatePicker(); 

我做的,你張貼在這裏的JS代碼如下變化和它的工作

$(document).ready(function() { 
    $("#MyDatePicker").kendoDatePicker(); 
    ChangeDatePickersState(); 
}); 

參考這些鏈接,準備修改更多信息 http://demos.kendoui.com/web/datepicker/api.html Disabling kendo datepicker when clicked on checkbox

+0

忘了提及我使用MVC和我的腳本之前創建datepicker,這是問題的HTML幫助器。 –

相關問題