0

「 beforeShowDay 」関数を使用していくつかの日付のみを有効にする JQuery 関数があります。そして、選択した日付を取得するために onSelect 関数を使用しています。幸いなことに、両方とも正常に動作しています。ただし、ここに問題があります。日付を選択すると、背景が短時間だけ変化し、強調表示された背景が現在の日付に戻ります。onSelect 関数を削除すると、正常に機能します。助けてくださいここに私のコードがあります:

var dates = [[2013, 2, 1],[2013, 2, 9],[2013, 2, 25],[2013,3,15]];

$(function(){
      $('[id="form1:kix_inline"]').datepicker(
      {
    beforeShowDay: function (date)
        {

          var x= dates.length;
      var year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
      for (var i=0; i < x; i++)
      {
         if (year == dates[i][0] && month == dates[i][1] - 1 &&  day == dates[i][2])
         {
            return [true, 'ui-state-highlight ui-state-active'];
         }
       }
      return [false];
    },

    onSelect: function(value, date) {

         var frm = document.getElementById("sendDateForm");
         frm.submit();

    }
    });
});

問題: 最初は、いくつかの日付 (「日付」の上の配列に記載されている) のみが有効になります。これらの日付のいずれかをクリックすると、「現在の日付スタイル」が数秒間しか表示されず、再び現在の日付に戻ります。

助けてください [説明がわかりにくくてすみません]

4

1 に答える 1

1

onSelect関数でフォームを送信しているようです。

var frm = document.getElementById("sendDateForm");
    frm.submit();

送信するとページがリロードされます。そのため、正しい色で点滅した後、元の日付に戻り、ページがリロードされました。ページをリロードせずにフォームを送信する必要がある場合は、ajaxを使用する必要があります。

于 2013-02-14T13:19:43.853 に答える