2011-10-10 60 views
20

我试图禁用日期选择器中的所有日期,并且只启用数组中的日期。这是我到目前为止的代码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

相关问题