2011-10-10 16 views
20

datepickerですべての日付を無効にしようとしていて、配列内の日付のみを有効にしようとしています。これは私が今まで持っているコードですhttp://jsfiddle.net/peter/yXMKC/問題は5月14日が有効になっているだけです。他はすべて無効になっています。何か案は?jQuery UI Datepickerは配列内の特定日だけを有効にします

var availableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

function available(date) { 
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
    if ($.inArray(dmy, availableDates) == 1) { 
    return [true, "","Available"]; 
    } else { 
    return [false,"","unAvailable"]; 
    } 
} 

$('#date').datepicker({ beforeShowDay: available }); 
+0

'' $ .inArray'は、(0から始まる)の位置に配列の値を返します。値が配列でない場合、それが返されます-1' – Xieranmaya

答えて

43

$ .inArray(DMY、availableDates)要素のインデックスを返しますので、あなたは1と比較したときにのみ14-5-2011がマッチします。 -1と等しくないことを確認してください。うまくいくはずです。

フィドル - http://jsfiddle.net/yXMKC/4/

var availableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

function available(date) { 
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
    console.log(dmy+' : '+($.inArray(dmy, availableDates))); 
    if ($.inArray(dmy, availableDates) != -1) { 
    return [true, "","Available"]; 
    } else { 
    return [false,"","unAvailable"]; 
    } 
} 
+1

私は別の日付を「22-10-2014」と言い、他の日付を追加しても動作しないかどうか聞いてみたい。これは、選択したばか日の処理方法のみを表示します。 –

+0

MM/DD/YYYYの形式はどのようにして取得できますか? – Si8

関連する問題