【问题标题】:JQuery Datepicker date is captured only when the day is clickedJQuery Datepicker 日期仅在单击日期时捕获
【发布时间】:2013-05-14 16:26:06
【问题描述】:

在使用 jQuery Datepicker 时遇到了一个奇怪的问题。我已设置选项 changeMonth: true 以启用月份更改。

说,如果我的日期选择器显示日期 02/05/2013 并且当我只是将月份更改为四月(不点击控件中的任何一天)时,日期将显示为 >2013 年 2 月 4 日。但是当我从控件中获取日期时,我最终得到的是旧月份值而不是新选择的月份值。

代码:

$('#uxStartDateTime').datetimepicker({
    timeFormat: "hh:mm tt",
    dateFormat: "dd/mm/yy",
    showButtonPanel: false,
    changeMonth: true,
    changeYear: true
});

//getting the date
var startDate = $('#uxStartDateTime').datetimepicker('getDate');

//formatting this date to it send via ajax to c#
startDate = startDate.getFullYear() + "-" + (startDate.getMonth() + 1) + "-" + startDate.getDate() + " " + startDate.getHours() + ":" + startDate.getMinutes();

我的方法有什么问题还是这是一个已知问题?

【问题讨论】:

  • 应该是这样的,你可以在月份之间来回滚动,但你必须实际选择一个日期才能更改日期,这几乎是每个日期选择器的工作方式!
  • @adeneo 哦,我明白了。有什么办法可以克服这种行为吗?

标签: javascript jquery jquery-ui-datepicker


【解决方案1】:

正如 adeneo 在他的评论中指出的那样,这是预期的日期选择器行为。如果你想改变它,你必须编写一个在月份变化时触发的方法。

$('.ui-datepicker-month').change(function () {
    // if there is a value in your controller, change it
});

我将把添加/减去月份的实际逻辑留给你。

【讨论】:

  • 谢谢,我很困惑,因为当我更改月份时,文本字段显示了更新的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多