2013-11-26 88 views
1

的minHour選項我有一個類型的兩個輸入=「文本」日期角色=「datebox」如何動態地設置jQuery Mobile的的datebox

一個是開始時間。 另一種是結束時間。

我想要做的是,當用戶選擇開始時間時,我將結束時間日期框的minHour選項更改爲他們選擇的小時。

這可能嗎?如果是這樣,怎麼樣?

感謝

+0

我試圖呼籲接近第一起始時間datebox一個回調函數,改變數據 - 第二個日期框的選項,然後我刷新第二個日期框。這沒有用。因此,我的問題更一般化,因爲我希望任何有效的解決方案。請不要以爲我發佈這個問題,甚至試圖幫助自己。 – WiseOlMan

回答

2

從我所看到的minHour似乎默認情況下,時間選擇器彈出向右小時,但隨後它可以讓你選擇一個較早的時間呢。如果選擇的時間早於minHour,則日期顯示的是早先的小時,但當您調用datebox('getTheDate')時;它返回minHour。所以我想出了一個解決方法,可以爲你做這項工作。

這裏是一個DEMO

每個dateboxes的有OnClose中的回調:

<input name="Date1" id="Date1" type="date" data-role="datebox" 
data-options='{"mode": "timebox", "closeCallback": "Date1Close();"}' /> 
... 
<input name="Date2" id="Date2" type="date" data-role="datebox" 
data-options='{"mode": "timebox", "closeCallback": "Date2Close();"}' /> 

的開始時間的回調得到的選定時間的小時,然後設置結束時間的minHour那麼'解決方法'是endtime的回調,它將盒子的時間設置爲盒子的'getTheDate'以校正顯示。

function Date1Close(){ 
    var startdate = $('#Date1').datebox('getTheDate'); 
    var minH = startdate.getHours() + 1; 
    if (minH > 23) minH = 23; 
    $('#Date2').datebox({"minHour": minH}); 
} 

function Date2Close(){ 
    var enddate = $('#Date2').datebox('getTheDate'); 
    $('#Date2').datebox('setTheDate', enddate); 
    $('#Date2').trigger('datebox', {'method':'doset'}); 
} 

在第二個回調,你也只是結束時間比作STARTIME,如果結束小於開始,第二datebox設置爲開始時間。

您可能想要聯繫Datebox開發商,看看是否有與minHour功能中的錯誤...

相關問題