2013-04-10 87 views
0

我在輸入字段中使用onChange時遇到了DHTMLX日曆問題。DHTMLX日曆onChange

我initialisating的代碼如下:

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();" /> 

應如何將它(並使用jQuery UI日期選擇器工作),一旦日期被輸入到onchange函數會觸發的輸入字段中。但是在這種情況下:使用這個日曆的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

我認爲它在日曆上從輸入初始化時會出現一個錯誤,問題是一旦你點擊輸入字段就會觸發onChange事件(如果你使用console.log或者打印日期參數,你可以看到這個) ,而不是當真正的用戶生成的變化,我有同樣的問題,你可以選擇使用'onClick'事件(這隻會當他們點擊選擇器,而不是當他們手動更改日期時)或使用JQUERY捕捉事件,因爲您直接從輸入字段獲取日期,而不是日曆發送的日期。

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