【问题标题】:How to validate date on the client side in jsp form without javascript?如何在没有javascript的情况下以jsp形式在客户端验证日期?
【发布时间】:2018-04-06 07:50:01
【问题描述】:

即使我使用日期选择器也不显示

  <input type="date" name="dob" required>  

可能对您有所帮助的其他信息: 它在一个 JSP 文件中 我正在使用tomcat v7.0 我需要在不使用 JavaScript 的情况下验证日期吗?

我尝试使用文本进行输入并设置指定的格式,但是如何在其中添加范围? (二月刊的最小最大值和动态?)

这个问题可以通过使用组合框来解决吗?如何根据另一个组合框更改一个组合框的值选项? (日期选项取决于月份和/或年份)

非常感谢任何帮助。

附:由于它是注册表的一部分,因此有人建议我不要使用 JavaScript 验证(因为它可以被禁用)

编辑:我想我会使用正则表达式。我在这里找到了一个,这个问题的第二个答案:Regular Expression to match valid dates

【问题讨论】:

  • 关于您的 P.S. :即使可以禁用 JS 验证,您也必须验证服务器端的任何输入。永远不要相信来自客户端的信息。可以伪造请求,根本不会有 JS 验证。
  • @sjahan 如果我使用正则表达式可以吗?或者也可以绕过它们?
  • 重要的是在服务器端执行验证:在您拥有的一侧。在客户端,使用总是可以禁用验证或伪造 HTTP 请求。使用正则表达式是关于你如何验证:答案是:你完全可以使用正则表达式来验证日期模式:)

标签: javascript html jsp servlets


【解决方案1】:

日期选择器不显示

当我测试它时它会这样做。也许你正在使用a browser which does not support it

我尝试使用文本进行输入并设置指定的格式,但是如何在其中添加范围?

如果“格式”是指pattern,那么您需要一个包含多个部分的复杂正则表达式。

例如0 后接 1-9,或 1 后接 0-9,或 2 后接 0-8,后接 / 后接 02,后接(闰年逻辑)

它不会很短或很漂亮。

正则表达式不适合描述日期的格式。

也就是说,see this question

这个问题可以通过使用组合框来解决吗?

如果不使用 JavaScript,您就无法在 HTML 中拥有组合框,您排除了这种可能性。

如果您的意思是“选择元素的集合”,那将是“下拉菜单”而不是“组合框”。

您可以使用这些,但没有什么好的方法可以阻止人们输入像 2 月 31 日这样的日期。

如何根据另一个组合框更改一个组合框的值选项?

仅适用于您排除的 JavaScript。


由于它是注册表的一部分,因此有人建议我不要使用 JavaScript 验证(因为它可以被禁用)

您不应该依赖 JavaScript 进行输入验证,因为它可以被绕过……但对于您可能实施的任何客户端输入验证都是如此。

客户端输入检查很有用,因为如果用户犯了错误并输入了没有意义的数据,它可以为用户提供快速反馈。

您需要同时进行服务器端输入检查,以防止恶意数据被故意插入您的系统。

【讨论】:

  • 1.我正在尝试在 Eclipse 本身上运行它并使用 tomcat。这是一个jsp页面。它没有出现在这里。 2. 是的,我确实意识到这是要走的路,但对选项和限制感到非常困惑,在更适合我格式要求的另一个链接上找到了更好的链接,谢谢! 3.哦。 4.哦。 5. 客户端输入验证绕过是否也包括 HTML5 上的模式?因为我正在使用它..我还需要在服务器上验证它吗?非常感谢您提供的信息。
猜你喜欢
  • 2011-01-04
  • 2013-07-29
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
相关资源
最近更新 更多