2017-02-16 16 views
0

Может кто-нибудь сказать мне, как сделать проверку через имя класса (т.е.) .datepickerDatePicker JQuery UI valiadtion на сегодняшний день> = с даты

Вот демо, чтобы иметь подтверждение для на сегодняшний день> = от дата

$('.datepicker').datepicker({ 
changeYear: true, 
dateFormat: "dd-mm-yy", 
yearRange: '2006:' + (new Date().getFullYear() +1) 
}).datepicker("setDate", "0"); 

http://jsfiddle.net/sharmilashree/YdeY8/482/

ответ

0

Я согласен с использованием moment.js. Однако, если вы по какой-то причине не хотите или не можете, вот решение для вашей скрипки.

http://jsfiddle.net/jonofan/YdeY8/483/

$('.datepicker').on('change', function() { 
     var fromParts = $('#CheckInDate').val().split('-');  
     var toParts = $('#CheckOutDate').val().split('-'); 

     //please put attention to the month (parts[0]), Javascript counts months from 0: 
     // January - 0, February - 1, etc 

     var fromDate = new Date(fromParts[2],fromParts[0]-1,fromParts[1]); 
     var toDate = new Date(toParts[2],toParts[0]-1,toParts[1]); 

     if (fromDate >= toDate) { 
     alert('Check in must be before check out!') 
     } 
    }) 

Причина вы должны разделить ваши даты в части потому, что Java-объект Date() только разбирает конкретные форматы, и вы не можете пользовательские форматы. Вот почему приятно использовать библиотеку, например, moment.js, так как она будет обрабатывать все очень гибко.

Исходя из опыта, использование разделения строк для синтаксических дат становится проблематичным в том случае, если вы хотите изменить формат даты. Скачайте через 6 месяцев, вы хотите изменить даты с dd-mm-yy по dd/mm/yy; вам нужно будет перейти и обновить код разделения строк.

+0

Спасибо за ответ. Есть ли способ поставить функции checkInDate.datepicker и checkOutDate.datepicker внутри функции .datepicker. Потому что мне нужно получить доступ к полям управления через имя класса, а не через имя элемента управления. – Ammu

+0

@Ammu, вы можете, конечно, получить к ним доступ через '$ ('. Datepicker')', но вам нужно знать, в чём находится чек, и что происходит. Для этого я думаю, что вам, вероятно, все еще нужны идентификаторы. Оцените, можете ли вы «отметить как ответ», если это было полезно. – jonofan

0

вы можете использовать momentJS для проверки, если дата до или равна.
Простой код, как:

if(moment(fistDate).isBefore(moment(secondDate)) || moment(firstDate).isSame(moment(secondDate)) { 

} 

В этом примере первая дата представляют ценность вашего DateTimePicker и вторая дата, что вы хотите, чтобы это было так как вы никогда не говорили, что это было.

+0

Благодарим за ответ. Мое кодирование работает отлично. Есть ли способ поставить функции checkInDate.datepicker и checkOutDate.datepicker внутри функции .datepicker. Потому что мне нужно получить доступ к полям управления через имя класса, а не через имя элемента управления. – Ammu