Jquery Datepicker,在智慧结束时

时间:2011-06-22 13:19:44

标签: javascript jquery datepicker

这段代码以前有用,但现在没有了,它只取数组中的第一个值......

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);
    } 
    })

2 个答案:

答案 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...