ko databind with datepicker

时间:2012-09-27 07:59:31

标签: knockout.js datepicker

我正在使用ko绑定作为我的日期时间选择器。我从here

那里得到了一个样本

但是当用户输入无效数据时,该值将重置为今天的日期。怎么避免这个? (我需要将该字段显示为无效。因为重置它总是显示我有效)

1 个答案:

答案 0 :(得分:1)

这不是因为淘汰赛。这是jQuery DatePicker的默认行为。

输入无效日期时,$(element).datepicker('getDate')的结果为今天的日期。

请参阅here以获取解决方案,以检查jQuery DatePicker的当前输入是否有效。然后修改自定义绑定中的ko.utils.registerEventHandler调用,如下所示:

ko.utils.registerEventHandler(element, "change", function () {

    var observable = valueAccessor();

    var valid;

    /* check validity here */

    if( valid ) {
        observable($(element).datepicker("getDate"));
    }
    else {
        /*
           do something other than jQuery's 'getDate',
           as it will return today's date
        */
    }
});