h:inputText只允许十进制数字

时间:2018-11-20 12:03:44

标签: javascript html jsf

我需要使用onkeypress事件来限制输入文本,以仅允许数字和小数。我可以限制数字,但不允许点值。

<h:inputText value="#{dimStackLine.max}"
  onkeypress="if( (event.which &lt; 48 || event.which &gt; 57) ) return false;">
  <p:ajax event="change" process="@this"></p:ajax>
  <f:convertNumber pattern="####0.00000" />
</h:inputText>

1 个答案:

答案 0 :(得分:2)

您的.禁止输入小数点onkeypress,因为事件键代码是46,它不在48 <= code <= 57的允许范围内。您还必须另外允许代码46:

<h:inputText value="#{dimStackLine.max}"
  onkeypress="if( (event.which &lt; 48 || event.which &gt; 57) &amp;&amp; event.which != 46 ) return false;">
  <p:ajax event="change" process="@this"></p:ajax>
  <f:convertNumber pattern="####0.00000" />
</h:inputText>