, запускайте Ajax в inputText только при нажатии клавиш, которые изменяют поле
Я использую PrimeFaces и имею поле p :inputText , где мне нужно обновить некоторые компоненты в представлении на основе последнего нажатия клавиши внутри этого p :inputText . Вот код:
<p:inputText value="#{customerLController.surnameFilterConstraint}"
id="surnamefilterfield">
<p:ajax event="keyup"
update=":custForm:custDataTable"
listener="#{customerLController.focusSurname}"
oncomplete="primeFacesId('surnamefilterfield')"/>
</p:inputText>
Дело в том, что приведенный выше код запускает Ajax даже в случае нажатия клавиш со стрелкой (, чего я бы предпочел избежать, учитывая дорогостоящее обновление ).. В идеале я хотел бы другую версию p :ajax event="change" с оговоркой, что изменение произносится при нажатии клавиш, а не когда пользователь нажимает Enter(что и происходит теперь ).
Если компонент p :ajax не позволяет отфильтровывать определенные события keyup , то я понимаю, что единственный (?)В качестве альтернативы можно было бы вызвать JavaScript на стороне клиента, а затем реализовать вызов Ajax в Javascript, но тогда я бы отказался от удобства использования компонента PrimeFaces p :ajax , не так ли?