5

JQuery UI を使用するアプリがあります。このアプリでは、ダイアログを開いて 2 つの日付ピッカーを表示する必要があります。現在、ダイアログが機能しています。また、日付ピッカーが 2 つあります。私の問題は、a) 日付ピッカーのデフォルトの日付が表示されないことと、b) ダイアログを開くと、「開始日」の日付ピッカーが自動的に開かれることです。ダイアログと日付ピッカーを初期化するコードは次のとおりです。

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

私は何を間違っていますか?

ありがとうございました!

4

2 に答える 2

8

問題は、ダイアログが開いているときにフォーカスが日付コントロールに設定されているため、日付ピッカーが開くことです。

tabIndex=1考えられる解決策の 1 つは、データ コントロール以外の要素を割り当てることです。

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

デモ:フィドル

defaultDate プロパティは、入力コントロールのデフォルトの日付を設定しません。ポップアップで日付を強調表示するだけです。datepicker ポップアップを見ると、設定されている defaultDate が強調表示されていることがわかります

于 2013-03-13T12:57:09.350 に答える