在$(document).ready上操作datePicker CSS

时间:2013-08-07 13:01:16

标签: javascript jquery events datepicker kendo-ui

我正在尝试根据其他小部件(复选框和数字文本框)启用/禁用日期选择器。当我尝试使用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);
    }
}

提前致谢。

2 个答案:

答案 0 :(得分:1)

我忘了提到我使用剑道和MVC,但无论如何我从他们的论坛得到了答案:

Kendo UI小部件在初始化时不会触发事件,但如果将自定义逻辑包含在document.ready处理程序中,则可以指望它们存在,该处理程序在页面末尾添加。这将确保在所有窗口小部件初始化语句之后执行处理程序,这些语句也依赖于document.ready。在这种情况下,不需要setTimeout。

可以初始化某些小部件,例如Grid或ListView,但仍未在document.ready中填充。根据具体情况,您可以使用相应小部件的dataBound事件来执行自定义逻辑。

谢谢大家!

答案 1 :(得分: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