【问题标题】:jquery datepicker should not automatically change time value on update minDate or maxDatejquery datepicker 不应在更新 minDate 或 maxDate 时自动更改时间值
【发布时间】:2018-04-24 12:03:46
【问题描述】:

我在 Angular 应用程序中使用 jquery datepicker,我注意到我想阻止的行为。

该应用程序由日期输入字段和月份选择框组成。 如果选择框中的月份发生了变化,jquery 日期选择器的 minDate 需要调整。

我尝试了以下示例:

  1. 我将输入字段中的日期设置为 24.04.2018
  2. 我选择了十月
  3. 输入字段的日期自动设置为 24.10.2018

我不希望自动调整 Inputs 字段的内容。

这是我的 git-hub 项目:https://github.com/annalen/jquery-datepicker

非常感谢您的帮助

解决方案 我使用 beforeShow 和 onClose 日期选择器函数

jQuery(yourElement).datepicker('option', 'beforeShow', function (date) {
  return {
    'minDate': yourMinDate,
    'maxDate': yourMaxDate
  };
});

jQuery(yourElement).datepicker('option', 'onClose', function (date) {
  jQuery(this).datepicker('option', {
    'minDate': null,
    'maxDate': null
  });
});

【问题讨论】:

  • 请不要将答案编辑到问题中。相反,添加一个答案来回答问题。

标签: javascript jquery angular typescript datepicker


【解决方案1】:

日期选择器仅在所选日期超出范围时更新日期。

例如,如果当前选择的日期是 24.04.2018,而您将 minDate 设置为 20.04.2018,则不会发生任何事情。

但如果您将其设置为 2018 年 4 月 24 日之后的任何日期,它将得到更新。我认为这是正常的,因为它的目的是设置 minDate。

您始终可以手动设置自己的输入值:$('#datepicker').val('20.04.2018'),但我认为显示与内部日期选择器组件状态不同的内容不是一个好主意(弹出的日历将显示与一个在输入)

问候, 文森特

【讨论】:

  • 非常感谢您的回复。我花了很长时间才找到解决方案。在我的解决方案中,我使用了 beforeShow 和 onClose 日期选择器函数。
猜你喜欢
  • 2013-04-22
  • 2019-11-02
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2015-03-19
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多