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