3

我对日期选择器有一点问题,我希望带有箭头的用户只能选择第一个月的第一天和该月的最后一天之间的日期,但这将是动态的,因为如果我们在 2014 年我只能看到 2014 年。

我已经尝试过这种模式,但我可以使用箭头转到 2012 或 2014,例如:

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

4 回答 4

6

设置minDatemaxDate喜欢

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

关联

于 2013-08-08T15:54:08.723 回答
2

像这样使用yearRange

datepick({yearRange: new Date().getFullYear() + ':' + new Date().getFullYear()});
于 2014-03-24T19:17:58.593 回答
0

为什么不将 yearRange 称为 currentyear : currentyear?

你可以这样做:之后

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

在你的日期选择器里面, yearRange: "+curyear+":"+curyear+"

于 2013-08-08T15:42:55.280 回答
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>
于 2013-08-08T16:40:39.747 回答