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