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

时间:2015-10-20 11:30:31

标签: jsf primefaces integer size bean-validation

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

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

有什么想法吗?

编辑:

我尝试使用f:validateRegex,但奇怪的是,验证只有在我省略type =" number"在p:inputText中。 Paul Wasilewski的发布解决方案在input =" number" (至少在firefox上)

1 个答案:

答案 0 :(得分:2)

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

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