我有一个带有2个
JQuery UI datepicker输入的JQuery模式对话框.我的问题是,当对话框打开时,页面上的日历已经打开.我不确定这是不是因为它正在获得焦点,但最终结果是它在对话框打开时显示.这是我的代码:
<script type="text/javascript"> $(function() { $('input').filter('.datepicker').datepicker({ changeMonth: true,changeYear: true }); }); </script> <div id="rpt_dialog" title=""> <form id="rptDlgForm" action="/EquipTrack/ShowReport" method="post"> <center> <div id="rpt_dlg_results"></div> </center> <div style="float:left; padding-left:50px">From:</div> <input class="datepicker" id="dtReportFrom" name="dtReportFrom" type="text" style="float:left"> <div style="float:left; padding:0 5px 0 15px">To:</div> <input class="datepicker" id="dtReportTo" name="dtReportTo" type="text" style="float:left"> <br /> <br /> <p><input type="submit" value="Show report" id="btnSubmit" style="float:left;padding-right:10px"/> <input type="button" onclick="CloseReportDialog()" value="Close" id="Button2" /></p> <p></p> <input type="hidden" id="hdnReportName" name="hdnReportName" value=""/> </form> </div>
解决方法
我让这个工作,但在打开我的对话框之前禁用了datepickers,然后在对话框的打开事件中启用它们.代码是:
$('#dtReportFrom').datepicker('disable'); $('#dtReportTo').datepicker('disable'); jQuery('#rpt_dialog').dialog('open'); $(function() { $("#rpt_dialog").dialog({ bgiframe: true,width: 540,modal: true,autoOpen: false,resizable: false,open: function(event,ui) { $(ui).find('#dtReportFrom').datepicker('enable'); $(ui).find('#dtReportTo').datepicker('enable'); },close: function(event,ui) { } }) });