jsf - primefaces inputText 输入字符串,但只允许数字

标签 jsf primefaces integer size bean-validation

我有一个 primefaces p:inputText,我希望用户在其中输入一个整数,但数据的类型必须保留为字符串,因为我使用 @javax.validation.constraints.Size 进行服务器端 bean 验证(这就是为什么整数转换器不起作用,我从 Hibernate 验证器获得 ClassCastExcpetion)。我这样做是因为在其他场合,seam bean 也用于存储字符串。

理想情况下,我希望用户只能在字段中输入数字,因此我使用了“onkeypressed”和不同的正则表达式/键码,但我找不到适用于 Chrome、Firefox 和 IE 的解决方案。

有什么想法吗?

编辑:

我尝试了 f:validateRegex,但奇怪的是,只有当我在 p:inputText 中省略 type="number"时,验证才会起作用。另外,Paul Wasilewski 发布的解决方案在 input="number"的情况下不起作用(至少在 Firefox 上)

最佳答案

如果您还没有尝试过。解决方案是

<p:inputText ... onkeydown="return event.keyCode &gt;= 48 &amp;&amp; event.keyCode &lt;= 57 || event.keyCode == 8" ... />

关于jsf - primefaces inputText 输入字符串,但只允许数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235474/

相关文章:

jsf - c :forEach inside primefaces(e. g。 p:panelgrid)在ui内:重复

java - 在 JSF 中使用实体

jsf - 如何在 primefaces 消息中显示页面内的错误总数?

ajax - Primefaces ajax 根据 backbean 结果更新不同的面板

java - 如果列表包含值则渲染 Primefaces

java - JSF 属性初始化

java - 单击primefaces中的命令按钮时如何添加多个空输入文本

javascript - 如果 var 低于某个数字降序执行某些操作

ios - 无法将类型 'Int' 的值转换为预期的参数类型 'UInt32'

string - MongoDB:使用 map-reduce 将字符串更改为整数