p:keyFilter 在 Firefox 中没有按预期工作

p:keyFilter not working as expected in Firefox

我可以为 p 输入文本输入数字和特殊字符。

如何限制只能接受数字的字段?在所有浏览器中?

<p:message for="longitude" display="text"><p:autoUpdate/></p:message>
<p:inputText id="longitude" maxlength="18" style="width: 50%;" value="#{areaMB.longitude}">
<p:keyFilter regEx="/[0-9]/i" />
</p:inputText>

浏览器Chrome版本 81.0.4044.113(64 位)- 只能在字段中输入数字
浏览器 IE 版本 11.0.9600 - 只能在字段中输入数字

问题 但是通过Fire Fox

浏览器 Fire Fox 75.0(64 位)- 可以在字段中输入数字和特殊字符 /

如何限制只能接受数字的字段?在所有浏览器中?

该问题仅存在于Fire Fox 浏览器中,大多数用户都在使用该浏览器。

这个 KeyFilter Firefox 问题已在 PrimeFaces 8.0 中修复: https://github.com/primefaces/primefaces/issues/5110

如果您确实需要将输入限制为数字,您可以像这样使用 p:inputNumber

<p:inputNumber id="longitude" 
               maxlength="18" 
               style="width: 50%;" 
               value="#{areaMB.longitude}" 
               decimalPlaces="0"
               minValue="0" />

如果要允许负数,请删除 minValue