Jquery Datepicker, в конце концов - PullRequest
0 голосов
/ 22 июня 2011

Этот код раньше работал, но теперь это не так, и он принимает только первое значение в массиве ...

var unavailableDates - это массив, который останавливает отображение дат на указателе даты.

Есть идеи ??

По какой-то причине он не циклически перебирает все даты в массиве!?!?

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 ]

3 голосов
/ 22 июня 2011

В jQuery метод $.inArray(elem, array) возвращает -1, а не 0, когда elem не найден в array.

Так что я думаю, что вы должны использовать:

if ($.inArray(dmy , unavailableDates) == -1)

вместо:

if ($.inArray(dmy, unavailableDates) == 0)

0 голосов
/ 22 июня 2011

Что происходит, $.inArray возвращает индекс найденного элемента (если он его находит, иначе -1)

, поэтому вам нужно проверить, не является ли индекс -1

...$.inArray(dmy, unavailableDates) != -1...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...