2

我需要验证网页上的日期/时间字段,但希望它在不重新加载页面的情况下执行此操作,并希望为用户提供“即时”反馈。

什么是最好/最简单的解决方案。顺便说一句:最简单的分数占总分的 65%

编辑:如果最好是总分的 65% 怎么办?

4

10 回答 10

3

如果您想使用 JavaScript,那么它内置了日期验证功能。但是,如果您不想走 JavaScript 路线,您可以将 UI 更改为下拉控件,这将限制用户输入无效数据的能力。您仍然需要检查服务器端以确保没有人在 2 月 30 日提交。

于 2008-08-14T03:16:44.863 回答
2

查看这个javascript 日期验证功能。

它使用 javascript、正则表达式和文本输入的“onblur”事件。

于 2008-08-14T02:56:56.913 回答
2

@大卫·H·奥斯特

使用 onblur 进行验证是有问题的,因为有些人使用回车键而不是鼠标来提交表单。结合使用 onblur 和表单的 onsubmit 事件可能是一个更好的解决方案。当我对表单进行更多的 JS 验证时,我会针对 keyup 事件运行。这为用户提供了关于他们的输入是否正确的即时反馈。您可以(我也这样做了)也可以进行检查,以便用户在离开该字段之前不会收到“不正确”的消息(因为如果他们没有完成,您不应该告诉他们他们不正确然而)。

于 2008-08-15T10:47:34.683 回答
1

如上所述,我建议使用下拉列表来显示日期。我真的想不出任何不这样做的理由——你希望用户从预定义的数据中进行选择,而不是给你一些你无法预料的独特的东西。

您可以使用一点 Javascript 来避免 2 月 30 日(使日期字段根据月份动态填充)。

于 2008-08-14T18:39:28.490 回答
1

@Brian Warshaw
关于不要忘记通过键盘导航的用户(呃,我),这是一个非常好的观点。

感谢您引起我们的注意。

于 2008-08-18T03:54:16.143 回答
0

一个简单的 javascript 方法,它读取提交时输入字段中的内容并对其进行验证。如果它无效,则返回 false 以便表单不会提交到服务器。

... onSubmit="return validateForm();" ...

确保您也在服务器端进行验证,很容易绕过 javascript 验证。

于 2008-08-14T03:03:22.033 回答
0

如果您使用的是 ASP.NET,它具有验证器控件,您可以指向文本框,然后可以使用这些文本框来验证正确的日期/时间格式。

于 2008-08-14T03:18:31.363 回答
0

以太中有几个日期小部件可用。然后你可以只允许有效的输入。

于 2008-08-14T08:48:50.027 回答
0

看起来有一个很棒的视频,关于 ASP.NET AJAX 控件工具包提供了很好的 MaskedEdit 控件和 MaskedEditValidator 控件。对于初学者来说并不容易,但非常好的即时反馈。

感谢所有的答案!

不幸的是我不能接受这个答案

于 2008-08-14T18:33:33.213 回答
0

我已经在几个项目中使用了这一小段 js 代码,它会与其他一些项目一起快速轻松地进行约会。

关联

于 2008-08-18T15:54:06.627 回答