0

jquery date-pickerを使用していますが、beforeShowDay関数に入力している曜日リストの色が異なり、選択またはクリックできないようにする必要があります。以下はコードです。

私はこの問題をグーグルでたくさん持っています....私は私の問題の半分の解決策を見つけました...それはそれらの特別な日付のためにその色を変えますがクリック可能ですが私はそれらを選択解除したいです

<style type="text/css">
    td.specialDay, table.ui-datepicker-calendar tbody td.specialDay  a { 
    background: none !important;
    background-color: #fffac2 !important; 
    color: black;
     }
</style>
<script type="text/javascript"> 

    var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
      dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [true,"specialDay","Booked"];
      }
    }

    $(function() {

             $( "#datepicker" ).datepicker({

                    minDate: 0, 
                    maxDate: "+3M +10D",
                    beforeShowDay: unavailable 

                });

              });

    </script>

解決策があれば教えてください...ありがとう

4

3 に答える 3

0

他の条件では、選択できないようにするためにfalseに言及する必要があります

if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"specialDay","Booked"];
      }

私はあなたの問題を見つけました。dmy変数を確認してください。正常に動作しているコードは

 var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
     var year, month, day, currDate;
     year = String(date.getFullYear());
     month = String(date.getMonth() + 1);
    if (month.length === 1) {
         month = "0" + month;
    }
    day = String(date.getDate());
     if (day.length === 1) {
         day = "0" + day;
     }
      dmy = String(day+'-'+month+'-'+year);
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"specialDay","Booked"];
      }
    }

これがお役に立てば幸いです

于 2012-07-09T11:37:47.123 に答える
0

これは私のために働いた...この種の問題を抱えている人が彼らも助けてくれることを願っています

以下の私の答えでは、私は3つのポイントを強調したので、それによると

ステップ1と2で、このcssを3番目のステップで追加します。このように編集またはコピーして貼り付けます。

この種の問題を探している人がそこに答えてくれることを願っています..そうでない場合は、私に教えてください..私がもっと説明できるかどうか

<style type="text/css">
  .ui-state-active  {      //1.add this
    background: blue !important;
}
.ui-state-active .ui-state-default{   //2. add this
    background: red !important;
}

</style>
<script type="text/javascript"> 

    var unavailableDates = ["30-7-2012","11-7-2012","15-8-2012"];
    function unavailable(date) {
      dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
      if ($.inArray(dmy, unavailableDates) < 0) {
        return [true,"","Book Now"];
      } else {
        return [false,"ui-state-active","booked"]; //3. edit here like this..
      }
    }

    $(function() {

             $( "#datepicker" ).datepicker({

                    minDate: 0, 
                    maxDate: "+3M +10D",
                    beforeShowDay: unavailable 

                });

              });

    </script>
于 2012-07-10T06:26:15.827 に答える
0

配列内の日付をチェックする際に問題があります。正常に機能しているこのリンクと正しい方法を確認してください。お役に立てば幸いです

于 2012-07-10T07:09:46.173 に答える