1

選択できるのは、任意の月の日付1と16のみです。他のすべての日付は無効にする必要があります。助けてください

$(closure.el).find('#listcmd_invoices .add .invoice-from-date-input')
             .datepicker({
                changeYear: true,
                showAnim: 'slide',
                changeMonth : true,
                yearRange : "Y:+2Y",
                beforeShowDay: function(date){
                        return [date.getDate() == 16 && date.getDate() == 1,""]
                    }
             });
4

2 に答える 2

3

JQuery-UI datpickerを想定すると、それが質問にタグを付けたものであるため、datepickerを初期化するときに提供する必要があるオプションはbeforeShowDayです。ドキュメントは、メソッドから何を返す必要があるかについてのかなり良い説明を提供します。明確にするために、以下に再現します。

関数はパラメータとして日付を取り、この日付が選択可能かどうかを示すtrue / falseに等しい[0]、デフォルトのプレゼンテーションのCSSクラス名または ""に等しい[1]、および[ 2]この日付のオプションのポップアップツールチップ。表示される前に、日付ピッカーで毎日呼び出されます。

だからあなたのために、次のようなもの:

$( "#datepicker" ).datepicker({
  beforeShowDay: function(date){
    return [
      date.getDate() == 16 || date.getDate() == 1,
      ""
    ];
  }
});

(コードを使用した更新を見たばかりです。テストで発生した唯一の問題は、「日は1に等しく、日は16に等しい」です。明らかに両方とも当てはまりません。したがって、間違っていたのは、ORを使用する必要があることだけでした。)

于 2013-02-27T10:59:39.317 に答える
1
$(closure.el).find('#listcmd_invoices .add .invoice-from-date-input')
         .datepicker({
            changeYear: true,
            showAnim: 'slide',
            changeMonth : true,
            yearRange : "Y:+2Y",
            beforeShowDay: function(date){
                               **if (date.getDate() == 1 || date.getDate() == 16)
                                   return [true,""];
                               else
                                   return [false,""];**
                            }
});
于 2013-02-27T12:13:54.707 に答える