【问题标题】:I need to add a range for a date input field in jquery我需要在 jquery 中为日期输入字段添加一个范围
【发布时间】:2010-05-21 13:58:11
【问题描述】:

我的表单中有一个需要日期值的输入字段。我正在为日历使用 jQuery UI 的 datepicker,并为它设置了一个范围。但是,用户可以通过在输入字段中键入不同的日期来覆盖它。如何使用 jQuery 验证为字段指定日期范围?我在 jQuery 中看到的只是您只能指定该字段为日期类型。我可以创建适用于日期的最小值和最大值吗?

【问题讨论】:

    标签: jquery validation date


    【解决方案1】:

    更新

    回应评论...

    我可以想象完成这项任务的许多方法,例如观察按键事件,OR 通过像这样检查startDate < myDate && myDate < endDate OR 通过执行正则表达式等...!

    但非常简单有效的方法是简单地使用<input/> readonly 属性,因此通过这样的单一输入:

    <input type="text" name="dateRange" readonly="readonly" maxlength="10" />
    

    你确定没有人可以输入日期,除非他们使用 datepicker

    就是这样! ;-)


    看起来像 minDatema​​xDate

    演示:http://jqueryui.com/demos/datepicker/min-max.html

    $("#datepicker").datepicker({minDate: -20, maxDate: '+1M +10D'});
    

    minDate:设置最小可选择日期 通过 Date 对象或作为字符串 当前的 dateFormat 或多个 从今天开始的天数(例如 +7)或字符串 值和周期('y' 表示年份, 'm' 代表几个月,'w' 代表几周,'d' 代表 天,例如'-1y -1m'),或 null 表示没有 限制。


    ma​​xDate: 通过 Date 对象或字符串设置最大可选日期 在当前的 dateFormat 中,或一个数字 从今天起的天数(例如 +7)或 值和句点字符串('y' 表示 年,“m”代表几个月,“w”代表几周, 'd' 表示几天,例如'+1m +1w'),或为空 没有限制。

    【讨论】:

    • 我的日期选择器中有这个,但除非我做错了什么,否则用户可以通过直接在输入字段中输入来覆盖它。这就是我要设置的范围。
    【解决方案2】:

    您只需在 Datepicker 中添加一个设置以使其无法编辑文本字段:

    $( ".selector" ).datepicker({ constrainInput: true });
    

    jQuery UI Documentation

    【讨论】:

    • 那行不通。 constrainInput 仍然允许输入字段中的有效字符。这意味着我可以更改年份。
    猜你喜欢
    • 2020-09-29
    • 2012-12-30
    • 1970-01-01
    • 2011-07-02
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多