2013-08-08 2 views
2

У меня есть небольшая проблема с datepicker, я бы хотел, чтобы пользователь со стрелками мог выбирать дату только между первым днем ​​первого месяца и последним днем ​​месяца, но это было бы динамично потому что если мы в 2014 году я должен видеть только год 2014.datepicker limit current year

Я попытался в этом режиме, но со стрелками я могу пойти к 2012 или 2014, например:

$('#check-in').datepicker({ dateFormat: 'dd-mm', changeYear: false, yearRange: "-0:+0", stepYears: 0 }); 

ответ

4

Набор minDate и maxDate как

$(function() { 
    var year = (new Date).getFullYear(); 
    $("#datepicker").datepicker({ 
     minDate: new Date(year, 0, 1), 
     maxDate: new Date(year, 11, 31) 
    }); 
}); 

Link

+0

да работает немного, если я нажимаю на стрелку вверху, чтобы изменить месяц, я могу перейти к 2014 году, например если я нажму на него, установите мне 2013 год, лучшее решение - то, что я не могу видеть 2014 год или другой год, только в текущем году –

0

Почему не говоря уже о yearRange быть текущим: текущий год?

Вы можете сделать это: после

$(document).ready(function(){ 
var curyear = $("#year").text((new Date).getFullYear()); 

Внутри вашего DatePicker, yearRange: "+curyear+":"+curyear+"

+0

NO ошибка синтаксиса вблизи: от curyear: curyear –

+0

Вы можете попробовать новый код? –

+1

ошибка снова СинтаксисError: missing} после списка свойств, на который указывает: «+ curyear +»: «+ curyear +» –

0

Это будет работать для вас:

jsFiddle

<head> 
    <meta charset="utf-8" /> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
    <link rel="stylesheet" href="/resources/demos/style.css" /> 
    <script> 

    $(document).ready(function() { 

     var date = new Date(), y = date.getFullYear(), m = date.getMonth(); 
     var fSDate = new Date(y, m, 1); 
     var fEDate = new Date(y, m + 1, 0); 

     $.datepicker.setDefaults({ 
      changeMonth: false, 
      changeYear: false, 
      showOtherMonths: false, 
      yearRange: '-0:+0', 
      dateFormat: 'yy-mm-dd', 
      defaultDate: +0, 
      numberOfMonths: 1, 
      minDate: fSDate, 
      maxDate: fEDate, 
      showAnim: 'fadeIn', 
      showButtonPanel: false 
     }); 

     $('#date_start').datepicker(); 

    }); //END document.ready() 
    </script> 
</head> 
<body> 

    <input type="text" id="date_start"> 

</body> 
</html> 
2

Просто используйте yearRange так:

datepick({yearRange: new Date().getFullYear() + ':' + new Date().getFullYear()}); 
Смежные вопросы