【问题标题】:JSP form input maxlength not working on number typeJSP表单输入最大长度不适用于数字类型
【发布时间】:2017-08-25 23:50:40
【问题描述】:

我使用jsp <form:input> 标签在jsp 表单上输入数据。要求是限制输入字段的长度,并且只能输入数字。

以下标签用于限制输入字符串的长度,但是我可以在此处输入任何符号:

<form:input path="somePath" code="someCode" maxlength="3"/>

当我使用number 类型时,maxlength 属性不起作用并且输入字段没有限制,但是我仅限于数字:

&lt;form:input path="somePath" code="someCode" maxlength="3" type="number"/&gt;

有没有办法限制输入字段的最大长度和仅限数字?无法弄清楚为什么上面的行不起作用。

【问题讨论】:

  • here
  • 好吧,JSP form:input 不理解 HTML type="number" 属性,它总是会创建 type="text" 输入字段。
  • form:input 不是@Andrew S 显示的 html 标签(html 标签是使用 type=text 输入的) form:input 是来自 spring-form.tld 的自定义标签,它是Spring MVC 的一部分。您是否有 tld,并且您是否在您的 JSP 中引用它,如此处所示stackoverflow.com/questions/2900689/spring-form-tld-where-is-it
  • @MichaelPeacock :我知道它的 Spring-Form,我也在同样的上下文中说。我认为没有办法,您可以使用 &lt;form:input ... /&gt; 创建一个 type="number" 输入字段 Ref : docs.spring.io/spring/docs/current/spring-framework-reference/…
  • @Yuriy :我认为您必须在客户端使用 Javascript 进行此验证。 ://

标签: java html validation jsp


【解决方案1】:

感谢here for HTML5 的回答,我能够通过以下方式在JSP 页面上解决此问题:

<form:input maxlength="3" type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>

number 类型开始,&lt;form:input&gt; 标签支持它,但是没有办法限制它的长度。

【讨论】:

    【解决方案2】:

    Spring &lt;form:input /&gt; 标签没有任何名为 type 的属性,您的代码中使用的 type=number 属于 html5 输入标签

    我能想到的最好方法是使用 Javascript 进行验证。

    Spring form tld 列出了form:input元素here的有效属性

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 2021-10-25
      • 2020-06-30
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2021-11-01
      相关资源
      最近更新 更多