2013-03-13 71 views
5

我有一個使用JQuery UI的應用程序。這個程序需要打開一個對話框並顯示兩個日期選擇器。目前,我有對話框工作。我也有兩個日期選擇器。我的問題是:a)日期選擇器默認日期未顯示,b)當我打開對話框時,「從」日期選擇器自動打開。這裏是我的代碼初始化對話框和日期選擇器:jquery datepicker自動打開(但不應該)

<div id="myDialog" title="Other Date Range" style="display:none;"> 
    <table border="0"> 
     <tr> 
      <td>From</td> 
      <td></td> 
      <td>To</td> 
     </tr> 
     <tr> 
      <td><input id="fromOtherDateTextBox" style="width:140px;" /></td> 
      <td>&nbsp;-&nbsp;</td> 
      <td><input id="toOtherDateTextBox" style="width:140px;" /></td> 
     </tr> 
     <tr> 
      <td>mm/dd/yyyy</td> 
      <td></td> 
      <td>mm/dd/yyyy</td> 
     </tr> 
    </table> 
</div> 

$(document).ready(function() { 
    $("#fromOtherDateTextBox").datepicker({   
     defaultDate: "-1d", 
     maxDate: 0, 
     minDate: new Date(2000, 1, 1) 
    }); 

    $("#toOtherDateTextBox").datepicker({   
     defaultDate: "0d", 
     maxDate: 0, 
     minDate: new Date(2000, 1, 1) 
    }); 

    $("#myDialog").dialog({ 
     autoOpen: false, modal: true, 
     show: "fade", hide: "fade", 
     height:220, width:350, 
     buttons: { 
      'Cancel': function() { $(this).dialog('close'); }, 
      'View': useOtherDate_Click 
     } 
    });  
}); 

這裏是我用來打開對話框的代碼:

$("#myDialog").dialog("open"); 

我在做什麼錯?

謝謝!

回答

8

問題是當對話框打開時,焦點被設置爲日期控件,這會導致打開日期選擇器。

一個可能的解決方案是指定一個tabIndex=1數據控件以外的元素。

<div id="myDialog" title="Other Date Range" style="display:none;"> 
    <table border="0" tabIndex="1"> 

演示:Fiddle

defaultDate property將不會爲輸入控件的默認日期,它只是強調,在彈出的日期。如果您查看日期選擇器彈出窗口,您可以發現設置的defaultDate高亮顯示

+0

爲什麼不設置默認值?它如此怪異。 – 2013-03-13 13:07:09

+0

@EelsFan查看更新 – 2013-03-13 13:14:55

2

嘗試在初始化datepicker組件後調用close()方法。

$("#fromOtherDateTextBox").datepicker({ /* ... */}).close(); 
相關問題