【发布时间】:2019-01-07 08:18:35
【问题描述】:
我有一个输入文本,应该限制用户输入负号,只能在字符串的开头输入。
由于我使用的是自定义 primefaces jar,我无法使用 p:inputNumber(通过映射 bigdecimal)。 OnKeyPress 事件我已添加以允许数字和点符号。但是我不能限制用户在字符串中输入负号。有什么办法可以在onkeypress 事件中实现它。我在下面给出了我的代码
<h:inputText value="#{dimStackLine.max}"
onkeypress="if( (event.which < 48 || event.which > 57) && event.which != 46 ) return false;">
<p:ajax event="change" process="@this"></p:ajax>
<f:convertNumber pattern="####0.00000" />
</h:inputText>
【问题讨论】:
-
您可以测试更改的值:
/^[\-\+]?\d+$/.test(this.value) -
我试过这样 onkeypress="return /^[\-\+]?\d+$/.test(this.value)" 它不允许输入任何值
-
我知道 - 因此可以使用
onchange或oninput代替 -
纯 javascript 验证器 验证器本身就是不安全的,因为它们只在客户端工作。也许对 PrimeFaces 库进行现代化改造会更好
标签: javascript jsf