У меня проблема с моим приложением PrimeFaces.
Представьте себе выпадающий список (p:selectOneMenu
) и поле клавиатуры (p:keyboard
). Раскрывающийся список выглядит так:
<p:selectOneMenu
id="artikelUserAuswahl"
style="width: 80%;"
filter="true"
filterMatchMode="#{userBean.sucheMethodeArtikelKasse}"
value="#{kassenController.artikelNummerDropdown}"
disabled="#kassenController.tooMuch}"
onchange="$(function(){PrimeFaces.focus('formKasse:anzahl');});">
<f:selectItem
itemLabel="#{resourceUtils.getI18N('label.artikel.waehlen')}"
itemValue=""
itemDisabled="true"
noSelectionOption="true" />
<f:selectItems
value="#{kioskArtikelController.recordListIncludeSelected}"
var="ki"
itemLabel="#{ki.text}"
itemValue="#{ki.artikelNummer}"/>
<p:ajax
update=":formKasse :formKasse:artikelNummer :formKasse:anzahl :formKasse:preis
formKasse:artikelBeschreibung :formKasse:bestandVorhanden :formKasse:buttonAbschluss"
listener="#{kassenController.addArtikelDropdown}" />
<p:focus for="preis" />
</p:selectOneMenu>
И у меня есть поле p:keyboard
:
<p:keyboard
id="#{userBean.kioskKasseUseNumpadPreis ? 'anzahl' :'anzahlNotRendered'}"
value="#{kassenController.anzahlAsString}"
layout="custom"
layoutTemplate="123,456,789,0.,back-close"
backspaceLabel="#{resourceUtils.getI18N('label.keyboard.backspace')}"
styleClass="kioskNumpadRabatt"
rendered="#{userBean.kioskKasseUseNumpadMenge}"
style="width: 80%; border: 2px solid #eeeeee !important;"
autocomplete="off"
disabled="#{kassenController.tooMuch}"
tabindex="2" />
Теперь не поймите меня неправильно, все работает с точки зрения значений, бины а также форма (все отображается правильно), но я получаю это странное поведение, что, если я выбираю значение из выпадающего списка, клавиатура показывает, но если я нажимаю на число (например, «1» на клавиатуре PrimeFaces) , то он не будет добавлять его в поле ввода, потому что фокус на самом деле не там.
Но как только я вручную нажимаю на * Поле 1019 *, работает правильно (Проблема: конечный продукт будет работать на сенсорном мониторе).
Версия PrimeFaces: 6.0.