JqueryUI Datepicker年份选择器不更新文本框文本

时间:2015-02-03 09:56:35

标签: jquery jquery-ui datepicker

我想知道是否有人知道如何更改JQueryUI Datepicker以在更改年份下拉列表时更新日期文本。

我正在使用的基础知识显示在http://jsfiddle.net/H94cc/238/

<input type="text" name="DOB" id="DOB" class="cat_textbox datepicker" value="10/10/1976" />


 // UI Date Picker
$(".datepicker").datepicker({ 
yearRange: '-80:-04' ,
changeYear: true,
changeMonth: true
});

$(".datepicker").datepicker({

    showOn: "both",
    buttonImage: "/images/calendar.png",
    buttonImageOnly: true
});

如果您点击文字,然后选择一年,然后点击其他地方而不再选择那一天它会关闭而不更新文字。

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

使用onChangeMonthYear事件,如下所示:

<!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>jQuery UI Datepicker - On change month,year</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
      <script src="//code.jquery.com/jquery-1.10.2.js"></script>
      <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
      <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
      <script>
      $(function() {
        var changingDate = false;
        $('.datepicker').datepicker({
            yearRange: '-80:-04' ,
            changeYear: true,
            changeMonth: true,
            onChangeMonthYear: function(y, m, i) {
                var d = i.selectedDay;
                $(this).datepicker('setDate', new Date(y, m - 1, d));
            }
        });
      });
      </script>
    </head>
    <body>
    <input type="text" name="DOB" id="DOB" class="cat_textbox datepicker" value="10/10/1976" />
    </body>
    </html>

答案 1 :(得分:0)

在更改事件发生时,使用datepicker中的setDate事件。

$target_node.change(function() {
   $your_date_node.datepicker({your_config})
                  .datepicker('setDate', your_date);
});

答案 2 :(得分:0)

就我而言,出于某种原因&#34;我&#34;变量没有填充;它也是&#34; datepick()&#34;而不是&#34; datepicker()&#34; - 不确定使用了什么插件。

这就是我最终的工作:

    var datepicker = $('.datepicker').datepick({
       changeYear: true,
       changeMonth: true,
       onChangeMonthYear: function (y, m, i) {
          var date = $(this).datepick('getDate');
          var d = date[0].getDate();
          $(this).datepick('setDate', new Date(y, m - 1, d));
       }
});