2

このデモのように、日付範囲にjqueryUIdatepickerを使用しています。これは、次の場合にToをFromへの将来の日付として検証できません。

  1. FROM日付で2011年11月19日を選択します。TO日付ピッカーで2011年11月に移動します。「2011年11月19日」より前の日付を選択することはできません。これは問題なく、期待される動作です

  2. 次に、マウスを使用してFROM日付ピッカーテキストボックスにカーソルを置きます。選択した日付、つまり2011年11月19日を選択し、削除する、つまりテキストボックスを空にします。この時点で、2つのテキストボックスは空です。

  3. 次に、「TO」datepickerに移動します。2011年11月を確認します。2011年11月19日より前のすべての日付は引き続き無効になっているため、動作は必須ではありません。

これを解決するためにテキストボックスを作成しましreadonlyたが、ユーザーがキーボードで日付を入力したり、マウスで選択したりできるように、この問題のより良い解決策が必要です。

4

1 に答える 1

1

これは、設定のロジックがイベントリスナーminDatemaxDateあるためselectです(日付ピッカーフィールドから日付を完全に削除しても起動されません)。change代わりに、イベントにバインドできます。

var dates = $("#from, #to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
}).bind("change", function() {
    var option = this.id == "from" ? "minDate" : "maxDate",
        selectedDate = this.value,
        instance = $(this).data("datepicker"),
        date = $.datepicker.parseDate(instance.settings.dateFormat ||
             $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);        
});

例: http: //jsfiddle.net/TMnRX/

于 2011-11-11T21:39:50.950 に答える