2010-11-22 18 views
1

EndDateの最小値をStartDateの値に設定するために、onSelectイベントを使用しています。私はいくつかのページで同じコードを持っていますが、そのうちの一つでは動作しません。 StartDateの値を選択すると、EndDateフィールドにdatepickerが表示されません。ページはロードされ、ajaxで処理されます。次のようにjQuery Datepicker onSelectが機能していません

私のコードは次のとおりです。

$(document).ready(function() { 

$("#strStartDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true, 
      onSelect: function(){ 
       $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
      } 
    }); 

    $("#strEndDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true 
    }); 
}); 

すべてのヘルプははるかに高く評価されます。前もって感謝します。あなたのコメントの背後にある考え方は、私は私が望むほとんどの事を行うに管理し使用し

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

上記のコードは、最終的にはすでに値があった場合は、開始日よりも小さい終了日を入れてからユーザーを制限します開始日を終了日よりも大きな値に変更すると、終了日を開始日に設定する必要があります。これは私が私の初期のコード

onSelect: function(){ 
     $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
    } 

で以下のコードを再度初期化インスタンスを使用して、これを行うとしないようにどのように任意のアイデアをどうしようとしていた何ですか?

答えて

0

私はこれがあなたの問題を解決するが、これを試してみますかわからない:

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(selectedDate){ 
      $("#strEndDate").datepicker("option", "minDate",selectedDate); 
     } 
}); 
+0

ため再び

おかげで残念ながら、これは私が実際にこの機能を使用する方法を取得しない – user516514

0

これはあなたが必要なものを行う必要があります。

function fromTo(startDate, endDate) { 
    $(startDate + ", " + endDate).datepicker({ 
    onClose: function (dateText, inst) { 
     if ("#" + inst.id === startDate) { 
     $(endDate).datepicker("option", "minDate", $(startDate).val()); 
     } 
    }, 
    beforeShow: function (input, inst) { 
     if (inst.id == $(endDate).get(0).id) { 
     inst.settings.minDate = $(startDate).val(); 
     } 
    }, 
    dateFormat: 'mm/dd/yy', 
    constrainInput: true, 
    firstDay: 1, 
    hideIfNoPrevNext: true 
    }); 
} 

使用fromTo("#startdate", "#enddate");

+0

動作しませんでした。この関数はいつ呼び出されますか? – user516514

+0

あなたのコードの背後にあるアイデアを使用して私は一歩前進しました – user516514

1

[OK]を男...良いニュース...少なくとも私のために:)

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(){ 
      if ($("#strStartDate").val() > $("#strEndDate").val()){ 
       $("#strEndDate").val($("#strStartDate").val()); 
      } 
     } 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

これが最終コードです。各日付ピッカーのインスタンスを1つだけ作成し、日付範囲ピッカーとして使用する場合は必要な検証を実行します。お使いのガイドライン