【发布时间】:2013-08-07 13:01:15
【问题描述】:
我正在尝试根据其他小部件(复选框和数字文本框)启用/禁用日期选择器。当我尝试使用 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);
}
}
提前致谢。
【问题讨论】:
-
我忘了提到我在 MVC 中使用 Kendo,但无论如何我从他们的论坛中得到了一个答案:Kendo UI 小部件在初始化时不会触发事件,但如果你将您的自定义逻辑包含在 document.ready 处理程序中,该处理程序添加在页面 的末尾。这将确保处理程序将在所有小部件初始化语句之后执行,这些语句也依赖于 document.ready。在这种情况下不需要 setTimeout。谢谢大家!
标签: javascript jquery events datepicker kendo-ui