2011-01-22 2 views
0

В настоящее время у меня есть пользовательская функция:Datepicker - Использование функции по умолчанию с помощью пользовательской функции

var $myBadDates = new Array(<?php foreach($aryDates as $disabledate) { echo ' "$disabledate",'; } echo " 1"; ?>); 
// Creates the array (The echo " 1"; is merely to close the array and will not affect the outcome 
function checkAvailability(mydate) { 
    var $return = true; 
    var $returnclass = "available"; 
    $checkdate = $.datepicker.formatDate('yy-mm-dd', mydate); 
    for (var i = 0; i < $myBadDates.length; i++) { 
     if ($myBadDates[i] == $checkdate) { 
      $return = false; 
      $returnclass = "unavailable"; 
     } 
    } 
    return [$return, $returnclass]; 
} 

Раздел DatePicker идет как таковые:

$(function() { 
    //To enable End Date picker only when Start Date has been chosen (And to disable all dates prior of said date) 
    var end = $('#enddate').datepicker({ 
     numberOfMonths: 3, 
     stepMonths: 3, 
     beforeShowDay: checkAvailability 
    }); 
    // Defining a function, because we're binding this to two different events 
    function enableEnd() { 
     end.attr('disabled', !this.value.length) // Enable the end input element if the first one has anything in it 
     .datepicker('option', 'minDate', this.value); // Set the minimum date to the date in the first input 
    } 
    //End of function 
    // Datepicker 
    $('#startdate').datepicker({ 
     numberOfMonths: 3, 
     stepMonths: 3, 
     beforeShowDay: checkAvailability, 
     minDate: +1, 
     onSelect: enableEnd // Call enableEnd when a date is selected in the first datepicker 
    }).bind('input', enableEnd); // Do the same when something is inputted by the user 
    //hover states on the static widgets 
    $('#dialog_link, ul#icons li').hover(

    function() { 
     $(this).toggleClass('ui-state-hover'); 
    }); 
}); 
//End of Function​ 

Что я делаю это из моя SQL DB, я использую настраиваемую функцию, которая меняет дату начала и дату окончания массива дат, который затем помещается в один массив и используется для отключения указанных дат.
Вторая датапикер разрешена только тогда, когда действительная дата из первого возвращается как TRUE.

Проблема заключается в следующем:
Я могу заблокировать все даты, которые у меня есть. Отлично. Но теперь, как я могу блокировать выходные на вершине этого?
beforeShowDay: $.datepicker.noWeekends не может работать, потому что я уже пользуюсь пользовательской функцией. Итак, я должен настроить свою пользовательскую функцию еще дальше. Я не могу использовать getDate() и показывать те> 0 и < 7, так как я могу это решить?

Любая помощь, ответ даже подсказка поможет. Я когда-то пробовал это, и я никуда не ушел. Благодарю.

+0

'GetDate()' не будет работать. Даже создание функции, повторяющей ту же процедуру, не будет работать. –

ответ

1

Кажется довольно простым, но я не понимаю, почему вы не можете использовать getDay() функции:

function checkAvailability(d) { 
    if (
     d.getDay() == 6 /* saturday */ || 
     d.getDay() == 0 /* sunday */ 
    ) { 
     return [false,'unavailable unavailable-cuz-its-weekend']; 
    } 
    $checkdate = $.datepicker.formatDate('yy-mm-dd', d); 
    for (var i = 0; i < $myBadDates.length; i++) { 
     if($myBadDates[i] == $checkdate) 
     { 
      return [false, "unavailable"]; 
     } 
    } 
    return [true, "available"]; 
} 
+0

Как я уже сказал, это не сработает. –

+0

Теперь я вижу, что вам не нужно использовать функцию formatDate в первую очередь. mydate * is * date и mydate.getDate() * будет * работать, поэтому mydate.getDay() - 0-6 для воскресенья через субботу. –

+0

Я отредактировал свой ответ. –

Смежные вопросы