【发布时间】:2010-05-21 13:58:11
【问题描述】:
我的表单中有一个需要日期值的输入字段。我正在为日历使用 jQuery UI 的 datepicker,并为它设置了一个范围。但是,用户可以通过在输入字段中键入不同的日期来覆盖它。如何使用 jQuery 验证为字段指定日期范围?我在 jQuery 中看到的只是您只能指定该字段为日期类型。我可以创建适用于日期的最小值和最大值吗?
【问题讨论】:
标签: jquery validation date
我的表单中有一个需要日期值的输入字段。我正在为日历使用 jQuery UI 的 datepicker,并为它设置了一个范围。但是,用户可以通过在输入字段中键入不同的日期来覆盖它。如何使用 jQuery 验证为字段指定日期范围?我在 jQuery 中看到的只是您只能指定该字段为日期类型。我可以创建适用于日期的最小值和最大值吗?
【问题讨论】:
标签: jquery validation date
更新
回应评论...
我可以想象完成这项任务的许多方法,例如观察按键事件,OR 通过像这样检查startDate < myDate && myDate < endDate OR 通过执行正则表达式等...!
但非常简单有效的方法是简单地使用<input/> readonly 属性,因此通过这样的单一输入:
<input type="text" name="dateRange" readonly="readonly" maxlength="10" />
你确定没有人可以输入日期,除非他们使用 datepicker!
就是这样! ;-)
看起来像 minDate 和 maxDate
演示: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 表示没有 限制。
maxDate: 通过 Date 对象或字符串设置最大可选日期 在当前的 dateFormat 中,或一个数字 从今天起的天数(例如 +7)或 值和句点字符串('y' 表示 年,“m”代表几个月,“w”代表几周, 'd' 表示几天,例如'+1m +1w'),或为空 没有限制。
【讨论】:
您只需在 Datepicker 中添加一个设置以使其无法编辑文本字段:
$( ".selector" ).datepicker({ constrainInput: true });
【讨论】: