这段代码以前有用,但现在没有了,它只取数组中的第一个值......
var unavailableDates
是一个数组,用于停止在datepicker上显示的日期..
任何想法??
由于某种原因,它不会在阵列中的所有日期循环!?!?
var unavailableDates = ["4-7-2011","5-7-2011"];
function unavailable(date) {
var dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == 0) {
return [false, "", "Unavailable"];
} else {
var day = date.getDay();
return [(day != 0 && day != 2 && day != 3 && day != 4 && day != 6)];
}
}
$(function(){
$('#smh').datepicker({
showOn: "both",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
beforeShowDay: unavailable,
minDate: -0,
dateFormat: "dd/mm/yy",
onSelect: function(e) {
e = e.split('/')[1] + '/' + e.split('/')[0] + '/' + e.split('/')[2];
var date = new Date(e);
var day = date.getDay(); // 0 = sunday etc...
if (day === 1) {
$("#check2").hide();
$("#text").hide();
$("#check1").show();
} else if (day === 5) {
$("#check1").hide();
$("#text").hide();
$("#check2").show();
}
$("#bdate").html(this.value);
}
})
答案 0 :(得分:3)
在jQuery中,$.inArray(elem, array)
方法在elem
中找不到array
时返回-1,而不是0。
所以我认为你应该使用:
if ($.inArray(dmy
, unavailableDates) == -1)
而不是:
if ($.inArray(dmy, unavailableDates) == 0)
答案 1 :(得分:0)
$.inArray
会返回找到的项目的索引(如果找到,则返回-1)
因此您需要检查索引是否不是-1
...$.inArray(dmy, unavailableDates) != -1...