2010-05-21 23 views
1

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

回答

2

修订

在性反应的评论

...

我能想象这样的任务的方法很多,如通过检查这样startDate < myDate && myDate < endDate观察按键事件,通过做正则表达式等。

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

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

你确信没有一个可以把日期,但如果他们使用日期选择器

就是这样! ;-)


样子究竟是什么的minDate的maxDate

演示:

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

的minDate:通过一组最小可选日期 日期对象或中的字符串当前的日期格式,或从今天起的多个 天(例如, +7)或字符串 的值和期间('y'多年, 'm'数月,'w'数周,'d'为 天,例如'-1y -1m'),或者为null没有 限制。


的maxDate:经由Date对象或作为当前DATEFORMAT字符串 ,或从数天的数 设置最大可选日期今天(例如+7)或 字符串值和期间('y'为 年,'m'为几个月,'w'为几周, 'd'几天,例如, '+ 1m + 1w'),或者为无限制的 。

+0

我我已经在日期选择器中得到了这个,但是除非我做错了什么,否则用户可以通过直接输入来覆盖它n输入字段本身。那就是我想要设置的范围。 – user338413 2010-05-21 14:21:45

+0

现在我明白了! ;-)查看更新! – 2010-05-21 19:00:09

0

你只需要添加一个设置日期选择器,使其因此他们不能编辑文本字段:

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

jQuery UI Documentation

+0

这不起作用。 constrainInput仍然允许输入字段中的有效字符。这意味着我可以改变一年。 – user338413 2010-05-21 15:51:38

相关问题