Используя PrimeFaces

, запускайте 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 , не так ли?

6
задан Marcus Junius Brutus 1 March 2013 в 16:42
поделиться