【问题标题】:How do I set min and max values on jQuery time spinner?如何在 jQuery 时间微调器上设置最小值和最大值?
【发布时间】:2014-02-22 09:16:25
【问题描述】:

我正在构建一个表单,我希望向<input type="date"> 添加一个 jQuery 函数,该函数不允许用户选择过去的日期。如果他们这样做,将显示错误并且表单不会验证。

更新:过去的禁用日期已使用 jQuery Datepicker 修复

我还有一个关于<input type="time"> 的问题。如何使该字段仅显示 11:30 到 22:00 之间的时间?

现在剩下要弄清楚的是如何设置最小时间最大时间,例如最小 11:30 和最大 21:45,以及弄清楚如何在最后两个数字上获得 15 分钟增量。有人愿意接受这个挑战吗? =)

我对 jQuery 相当陌生,因此非常感谢任何帮助。

请在JSFiddle 中找到我的代码的更新示例。

【问题讨论】:

  • 我认为你可以更好地使用 Jquery DateTimepicker 它将它覆盖到一个日期对象并且它是跨浏览器的。 type="date" 不适用于 IE 或 FF jqueryui.com/datepicker
  • 您可以将min attr 用于input,如here,您可以暂时做类似的事情。但是我同意 Rickdep 的观点,即您应该使用 jquery DateTimepicker。
  • @Rickdep 谢谢,我设法用 jQuery Datepicker =) 修复它
  • @Wahtever 不知道如何在时间上做类似的事情......
  • 更新:我现在可能正在做点什么...JSFiddle

标签: jquery forms


【解决方案1】:

要在最后两个数字上增加 15 分钟,使步长值 60*15000 例如。

$.widget("ui.timespinner", $.ui.spinner, {
    options: {
        // seconds
        step: 60 * 15000,
        // hours
        page: 60,
        max: "9:45 PM",
        min: "11:30 AM"
    },

    _parse: function (value) {
        if (typeof value === "string") {
            // already a timestamp
            if (Number(value) == value) {
                return Number(value);
            }
            return +Globalize.parseDate(value);
        }
        return value;
    },

    _format: function (value) {
        return Globalize.format(new Date(value), "t");
    }
});

这里是Fiddle

【讨论】:

  • 谢谢! :) 知道如何设置最小时间和最大时间吗?
  • @Prodac 我已经更新了小提琴的最小和最大时间。在选项对象中使用最小值和最大值。查看更新的答案。
猜你喜欢
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
相关资源
最近更新 更多