1

として設定された値に等しいonSelectの最小値を設定するために、イベントを使用しています。複数のページに同じコードがありますが、そのうちの 1 つでは機能しません。で値を選択すると、フィールドに移動したときに日付ピッカーが表示されません。ページは ajax で読み込まれ、処理されます。EndDateStartDateStartDateEndDate

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

$(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());
     }

インスタンスを使用してこれを行い、再度初期化しない方法はありますか?

4

3 に答える 3

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つだけ作成し、日付範囲ピッカーとして使用する場合は必要な検証を実行します。

ガイドラインをありがとう

于 2010-11-24T16:54:18.473 に答える
0

これで問題が解決するかどうかはわかりませんが、試してみてください。

$("#strStartDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true,
      firstDay: 1,
      hideIfNoPrevNext: true,
      onSelect: function(selectedDate){
            $("#strEndDate").datepicker("option", "minDate",selectedDate);
      }
 });
于 2010-11-22T19:10:11.690 に答える
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");

于 2010-11-22T19:20:31.710 に答える