【问题标题】:DHTMLX Calendar onChangeDHTMLX 日历 onChange
【发布时间】:2013-04-01 15:55:24
【问题描述】:

我在 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 支持。

【问题讨论】:

    标签: javascript jquery dhtml dhtmlx


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 2017-02-22
      • 2014-01-12
      • 1970-01-01
      • 2018-12-03
      • 2020-06-17
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多