2013-09-27 3 views
0

я somethinng, как показано ниже, и хотел убедиться, что от дата не должна путепровод на дату, которая не выбирается (даже после изменения даты), и наоборот.JQuery UI DatePicker От и До

От:<input type="text" id="xx_from" value="<?php echo $date_from; ?>" />

To:<input type="text" id="xx_to" value="<?php echo $date_to; ?>" />

$j("#xx_from").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     maxDate: $j("#xx_to").val(), 
     onSelect: function(){ 
     $j("#xx_to").datepicker("refresh"); 
     } 
    }); 

    $j("#xx_to").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     minDate: $j("#xx_from").val(), 
     onSelect: function(){ 
     $j("#xx_from").datepicker("refresh"); 
     } 
    }); 
+1

Возможный дубликат http://stackoverflow.com/questions/833997/end-date-greater-than-start-date-jquery-validation – RunningAdithya

ответ

2

если вы видите documentation. Вы можете решить свой вопрос. Вам просто нужно установить minDate и maxDate в datepciker. Вот код

$(function() { 
    $("#from").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 3, 
     onClose: function(selectedDate) { 
     $("#to").datepicker("option", "minDate", selectedDate); 
     } 
    }); 
    $("#to").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 3, 
     onClose: function(selectedDate) { 
     $("#from").datepicker("option", "maxDate", selectedDate); 
     } 
    }); 
    }); 

Js Fiddle Demo

+0

Ой я не знаю, есть диапазон дат более в примеры. Мой плохой и спасибо за указание на меня :) –

0

Вы должны установить мин и макс дату в конфиги из DatePicker при обновлении его в выбранном слушателем.

0

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

DEMO HERE

// To set mindate in enddate 
function customRange(input) 
{ 
return { 
     minDate: (input.id == "end_date" ? $("#start_date").datepicker("getDate") : new Date()) 
     }; 
} 

// To set maxdate in startdate 
function customRangeStart(input) 
{ 
return { 
     maxDate:(input.id == "start_date" ? $("#end_date").datepicker("getDate") : null) 
     }; 
} 

$(document).ready(function() { 

    $('#start_date').datepicker(
    { 
     beforeShow: customRangeStart, 
     maxDate: null, 
     dateFormat: "yy-mm-dd", 
     changeYear: true 
    }); 

    $('#end_date').datepicker(
    { 
     beforeShow: customRange, 
     dateFormat: "yy-mm-dd", 
     changeYear: true 
    }); 
}); 
+0

Не работает .. =/ –

+0

Проверьте мою демонстрацию. Он отлично работает :) –