如何在 jQuery datepicker 中禁用今天之前的日期
如何在 jQuery 日期选择器中禁用今天之前的日期而不使用 minDate: 0
?
我想在今天之前像往常一样启用日历导航,同时确保用户不会选择今天之前的日期。
(即说今天的日期是 2011 年 8 月 11 日,我希望禁用此之前的所有日期,但仍然允许用户转到之前的月份、年份等)
How do I disable dates before today in jQuery datepicker WITHOUT using minDate: 0
?
I would like to enable navigation of the calendar as per usual before today while making sure that user do NOT pick dates before today.
(i.e. say today's date is 11Aug11 and I would like all the dates before this disabled but still enabling user to go to previous months, years, etc.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
虽然我同意这是奇怪的行为,但您可能可以使用
onSelect< 来伪造它/code>
日期选择器的事件。
基本上,您处理
onSelect
事件。选择日期后,检查它是否在今天的日期之前。
如果是,那么您立即再次显示日期选择器并清除附加的输入框。
已更新
代码示例现已完全正常运行。这是一个 jsfiddle 来演示。
While I agree that it's weird behavior, you might be able to fake it using the
onSelect
event of the datepicker.Basically, you handle the
onSelect
event.When a date is selected, check to see if it's before today's date.
If it is, then you immediately show the datepicker again and clear out the input box attached to it.
Updated
Code sample is now completely functional. Here's a jsfiddle to demonstrate.
希望这对某人仍然有帮助。
我的解决方案是对各个日期进行检查,如下所示:
我发现它简单而优雅
Hope this is still helpful to someone.
My solution is to place checks on individual dates like this:
I find it simple and elegant
最简单的解决方案可以......
simplest solution could....
它似乎不可配置。在 jquery.ui.datepicker 的第 1434 行.js,如果指定了
maxDate
,它会设置一个maxDraw
变量并绘制到该日期的月份,而不考虑任何其他旗帜。但我也同意zzzzBov的观点。为什么用户需要查看他们无法选择的值?
It doesn't appear to be configurable. At line 1434 of jquery.ui.datepicker.js, if a
maxDate
is specified, it sets amaxDraw
variable and draws up to the month of that date, without regard for any other flags.But I also agree with zzzzBov. Why would the user need to see values they can't select?
相反,您可以在 .js 文件中编写一个函数,如下所示 -
这里“dateToSelect”是显示日期的字段的 id。此处的日期长度检查不是强制性的。
Instead you can write a function in your .js file like this-
Here "dateToSelect" is the id of the field where the date is shown. The checking of the date length here is not mandatory.
你可以简单地这样写
You could simply write like this