入力フィールドに onChange がある DHTMLX カレンダーに問題があります。
私は次のようにコードを初期化しています:
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 がサポートしているためです。