DHTMLX日历onChange

时间:2013-04-10 00:55:31

标签: javascript jquery dhtml dhtmlx

我遇到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。

1 个答案:

答案 0 :(得分:0)

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

calendar.attachEvent("onClick",function(date){
               checkDate();
        });