我需要验证网页上的日期/时间字段,但希望它在不重新加载页面的情况下执行此操作,并希望为用户提供“即时”反馈。
什么是最好/最简单的解决方案。顺便说一句:最简单的分数占总分的 65%
编辑:如果最好是总分的 65% 怎么办?
我需要验证网页上的日期/时间字段,但希望它在不重新加载页面的情况下执行此操作,并希望为用户提供“即时”反馈。
什么是最好/最简单的解决方案。顺便说一句:最简单的分数占总分的 65%
编辑:如果最好是总分的 65% 怎么办?
如果您想使用 JavaScript,那么它内置了日期验证功能。但是,如果您不想走 JavaScript 路线,您可以将 UI 更改为下拉控件,这将限制用户输入无效数据的能力。您仍然需要检查服务器端以确保没有人在 2 月 30 日提交。
查看这个javascript 日期验证功能。
它使用 javascript、正则表达式和文本输入的“onblur”事件。
@大卫·H·奥斯特
使用 onblur 进行验证是有问题的,因为有些人使用回车键而不是鼠标来提交表单。结合使用 onblur 和表单的 onsubmit 事件可能是一个更好的解决方案。当我对表单进行更多的 JS 验证时,我会针对 keyup 事件运行。这为用户提供了关于他们的输入是否正确的即时反馈。您可以(我也这样做了)也可以进行检查,以便用户在离开该字段之前不会收到“不正确”的消息(因为如果他们没有完成,您不应该告诉他们他们不正确然而)。
如上所述,我建议使用下拉列表来显示日期。我真的想不出任何不这样做的理由——你希望用户从预定义的数据中进行选择,而不是给你一些你无法预料的独特的东西。
您可以使用一点 Javascript 来避免 2 月 30 日(使日期字段根据月份动态填充)。
@Brian Warshaw
关于不要忘记通过键盘导航的用户(呃,我),这是一个非常好的观点。
感谢您引起我们的注意。
一个简单的 javascript 方法,它读取提交时输入字段中的内容并对其进行验证。如果它无效,则返回 false 以便表单不会提交到服务器。
... onSubmit="return validateForm();" ...
确保您也在服务器端进行验证,很容易绕过 javascript 验证。
如果您使用的是 ASP.NET,它具有验证器控件,您可以指向文本框,然后可以使用这些文本框来验证正确的日期/时间格式。
以太中有几个日期小部件可用。然后你可以只允许有效的输入。
看起来有一个很棒的视频,关于 ASP.NET AJAX 控件工具包提供了很好的 MaskedEdit 控件和 MaskedEditValidator 控件。对于初学者来说并不容易,但非常好的即时反馈。
感谢所有的答案!
不幸的是我不能接受这个答案。
我已经在几个项目中使用了这一小段 js 代码,它会与其他一些项目一起快速轻松地进行约会。