pata
pata

Reputation: 989

Insert only digits as input

Currently I have a <h:inputText>

<h:outputLabel value="#{locale.nroEmployees}:"/>
<h:inputText value="#{companyEditBean.companyEmployeesAmount}"
          disabled="#{not companyEditBean.editingAllowed}">
</h:inputText>                      

How can I achieve, that the user can only type digits in input fields?

Upvotes: 1

Views: 7714

Answers (2)

sarah
sarah

Reputation: 620

As an alternative way, you can use primeface for achieving this:

<h:form>
<h:panelGrid columns="2">   
        <h:outputText value="Number Input"/>   
        <h:inputText id="txt_" />   
</h:panelGrid> 
<p:keyFilter for="txt_" mask="num" /> 
</h:form>

Or, with primeface extension you can do this (assuming you added required jar and defining extension namespace as pe)

<p:inputText id="txt_" required="false" label=""
        value="#{beanclass.blablamethod}" maxlength="10">
        <f:validateLength minimum="10" for="txt_" />
        <pe:keyFilter regEx="/[\d\-]/"></pe:keyFilter>
</p:inputText>

Upvotes: 0

Woody
Woody

Reputation: 5130

You can filter it afterwards to only accept numbers, or do somehting similar to:

<h:inputText value="#{companyEditBean.companyEmployeesAmount}"
      disabled="#{not companyEditBean.editingAllowed}"
      onkeypress="if(event.which &lt; 48 || event.which &gt; 57) return false;"/>

Upvotes: 2

Related Questions