6

私は巨大なプロジェクトでjquery UI datepickerを使用していますが、一部の地域では特定の平日のみを許可する必要があるようになっています。私は彼らのドキュメントを読んで何も見つけられませんでした。jqのためのdatepickersスクリプトがいくつかありますが、これが可能な場合は追加のスクリプトを使用したくありません。 誰かがこれに対する回避策を知っていますか?たぶん私は彼らのドキュメントの何かを誤解しているのでしょうか?jQuery UI Datepicker - 特定の平日のみを許可する

注:希望の動作の一例:助けを事前にhttp://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

おかげで、ドキュメントから 乾杯 ペドロ

+3

リンクはあなたに完全な答えが含まれています。.. –

+1

@Gaby質問:デモを! –

+0

@Andrew、yeap ...かわいいストレートフォワード。 –

答えて

2

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

、こちらを参照してください。

http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

+0

少し見た目の良いブログのコメントにこれがありますhttp://jquerybyexample.blogspot.com/2010/07/disable-specific-days-in-jquery.html –

7
$(".datepicker.future").datepicker('option','beforeShowDay',function(date){ 
    var td = date.getDay(); 
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; 
    return ret; 
}); 
+0

td変数には整数値が割り当てられていますが、文字列と比較されます。 var td = ['Sun'、 'Mon'、 'Tue'、 'Wed'、 'Thu'、 'Fri'、 'Sat'] [date.getDay()]; – primehalo

5

@Janトーマスは、変数TDを追加するのを忘れ。正しいコードは次のとおりです。

$(".datepicker.future").datepicker('option','beforeShowDay',function(date){ 
    var td = date.getDay(); 
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; 
    return ret; 
}); 
+1

は、指定された日の数値表現であれば「座って」いますか?バグか私はそれを手に入れません。 – Tyler

+0

td変数に整数値が割り当てられていますが、文字列と比較されています。 var td = ['Sun'、 'Mon'、 'Tue'、 'Wed'、 'Thu'、 'Fri'、 'Sat'] [date.getDay()]; – primehalo

3
$('selector').datepicker({ 
beforeShowDay: $.datepicker.noWeekends // disable weekends 
}); 
0

ジャン・マレットの答え(beforeShowDay: $.datepicker.noWeekends)は、シンプルかつエレガントです。

beforeShowDayを使用して関数を呼び出している場合は、ここでは特定の曜日(この場合は日曜日と土曜日)を無効にする方法がありますあなたの関数の:あなたが投稿

beforeShowDay: function (date) { 

    /* your other function code here */ 

    if (date.getDay() > 0 && date.getDay() < 6) { 
     return [true, '']; 
    } else { 
     return [false, '']; 
    } 
} 

enter image description here

関連する問題