0

我在 DHTMLX 日历中遇到了输入字段中的 onChange 问题。

我正在使用以下代码初始化代码:

   jQuery(document).ready(function($){              
        var calendar;
        calendar = new dhtmlXCalendarObject(["date"]);
        calendar.hideTime();
        calendar.setDateFormat("%d/%m/%Y");
        $('.lightbox').lightbox();
        $('#slider').cycle();
    });
    function checkDate() {
        var date = $("[name='date']").val();
        alert(date);
    }

在我使用的表格中:

<input type="text" name="date" id="date" onchange="checkDate();" />

一旦将日期输入到输入字段中,onchange 函数将触发它应该如何(并且正在使用 JQuery UI datepicker)。但是在这种情况下:这个日历的 onchange 什么都不做。

我尝试将以下内容更改为:

   jQuery(document).ready(function($){              
        var calendar;
        calendar = new dhtmlXCalendarObject(["date"]);
        calendar.hideTime();
        calendar.setDateFormat("%d/%m/%Y");
        calendar.attachEvent("onChange",function(date, state){
               checkDate();
        });
        $('.lightbox').lightbox();
        $('#slider').cycle();
    });
    function checkDate() {
        var date = $("[name='date']").val();
        alert(date);
    }

但是 onchange 事件发生在输入日期之前,即当我单击输入字段时。

从 JQuery UI 更改为此 DHTMLX 的原因是 JQuery UI Datepicker 不支持所有平台(iPhone/iPad 等)而 DHTMLX 支持。

4

1 回答 1

0

我认为它是从输入初始化时日历上的一个错误,问题是一旦您单击输入字段就会触发 onChange 事件(如果您使用 console.log 或打印日期参数,您可以看到这一点),而不是何时有一个真正的用户生成的更改,我遇到了同样的问题,您可以选择使用“onClick”事件(这仅在他们单击选择器时有效,而不是在他们手动更改日期时有效)或使用 JQUERY 来捕获事件,因为您直接从输入字段获取日期,而不是日历发送的日期。

calendar.attachEvent("onClick",function(date){
               checkDate();
        });
于 2013-11-04T21:44:02.490 回答