Javascript Разрешить только отрицательные или положительные числа для входного текста JSF - PullRequest
0 голосов
/ 07 января 2019

У меня есть вводимый текст, который должен ограничивать пользователя от ввода отрицательного символа, который должен вводиться только в начале строки.

Так как я использую пользовательский jar-файл prifaces, я не могу использовать p:inputNumber (путем отображения bigdecimal). OnKeyPress событие, которое я добавил, чтобы разрешить цифры и символ DOT. Но я не мог ограничить пользователя от ввода отрицательного символа внутри строки. Есть ли способ, которым я мог бы достичь этого в onkeypress мероприятии. Я дал мой код ниже

<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>

1 Ответ

0 голосов
/ 08 января 2019

Используя ваш метод

Просто добавьте исключение для первого введенного символа. Вы можете сделать это, сделав что-то вроде этого;

<h:inputText value="#{downloadBackingBean.value}" onkeypress="if(($(this).val().length == 0 &amp;&amp; even.which == 45) || ((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>

Как вы можете видеть, это просто добавляет дополнительную проверку - позволяет вам ввести знак минус, если это первый символ в поле ввода.

Если вы идете по этому маршруту, убедитесь, что вы проверяете значение, прежде чем оно заполнит ваш компонент поддержки.

Альтернативный метод на стороне сервера

Другой способ - сделать это на стороне сервера. Вы можете передать значение до базового компонента с помощью valueChangeListener. Затем вы можете отрегулировать процесс и вернуться к проверке на стороне сервера, выполнив что-то вроде этого:

<h:form>
    <h:inputText valueChangeListener="#{bean.onNewValue}" value="#{bean.value}">
        <f:ajax event="keyup" render="@form" execute="@form"/>
    </h:inputText>
</h:form>

ValueChangeListener вызывается до того, как установлено значение базового компонента. Это позволяет вам постоянно проверять поступающие значения и обрабатывать их соответствующим образом. Как удаление нежелательных персонажей.

Вы легко сможете комбинировать это с проверкой бина или проверкой JSF в зависимости от того, что поддерживает ваша среда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...