2009-07-12 4 views
1

У меня есть страница, на которой пользователь может выбрать три разных дня назначения, используя jQuery UI Datepicker. Когда пользователь выбирает день в первом поле, я хотел бы, чтобы эта дата была заблокирована из двух других полей. В настоящее время я также отключаю воскресенье, но не могу заставить динамически отключать работу.jQuery Datepicker - несколько экземпляров и отключить ранее выбранные даты?

Appointment Time 1<br /> 
<input id="appointment1_date" type="text" name="appointment1_date" value="Select..." /> 

Appointment Time 2<br /> 
<input id="appointment2_date" type="text" name="appointment2_date" value="Select..." /> 

Appointment Time 3<br /> 
<input id="appointment3_date" type="text" name="appointment3_date" value="Select..." /> 


     <script type="text/javascript"> 
     function noSunday(date){ 
      var day = date.getDay(); 
         return [(day > 0), '']; 
      }; 
     </script> 
     <script type="text/javascript"> 
     $(function() { 
      $("#appointment1_date").datepicker(
      { 
       minDate: +2, 
       beforeShowDay: noSunday 
      }); 
     }); 
     $(function() { 
      $("#appointment2_date").datepicker(
      { 
       minDate: +2, 
       beforeShowDay: noSunday 
      }); 
     }); 
     $(function() { 
      $("#appointment3_date").datepicker(
      { 
       minDate: +2, 
       beforeShowDay: noSunday 
      }); 
     }); 
     </script> 

ответ

0

Чтобы заблокировать даты из других полей, вы должны получить дату и выполнить сравнение в своей функции обработки. Учитывая код при условии, следующие должны работать в качестве замены для noSunday:

function noSunday(date) { 
     var day = date.getDay(); 
     return [ 
      (day > 0 && 
      date.valueOf() != $('#appointment1_date').datepicker('getDate').valueOf() 
     ), 
      '' 
     ]; 
}; 

В принципе, вы не только хотите, чтобы убедиться, что day > 0 так, что это не воскресенье, а также убедитесь, что дата не равна дате, заданной appointment1_date. Использование .datepicker('getDate') и сравнение его valueOf() с ключом date.

Возможно, вы захотите переименовать его как-то наподобие noSundayOrSelected или что-нибудь в равной степени описательное.

1

Вы можете использовать функцию beforeShowDay для установки отключенных дат.

Для получения полного разъяснения см. here.

+0

Да, я использую это для блокировки праздников, но не могу добавить динамическую дату из существующего поля в массив. – 2009-07-21 01:41:44

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