Клавиша табуляции не работает, когда автозаполнение находится в редактируемой таблице данных - PullRequest
2 голосов
/ 20 октября 2019

У меня есть p:autoComplete внутри p:dataTable с p:cellEditors. когда я нажимаю клавишу табуляции, курсор перемещается по порядку между элементами строки, например, между входами и selectOneMenus, кроме AutoComplete, курсор переходит в AutoComplete, но не может выйти из него.

Я понял, если я удаляю var в p:autoComplete это работает правильно, я думаю var генерирует скрытый ввод, который уничтожил tabindex, но я не могу исправить это с помощью tabindex и другими способами.

     <p:dataTable id="FieldSoftwareElement_listForm_dataTable"  value="#{classSoftwareElementController.selectedClassSoftwareElement.fields}" var="item" style="margin-top: 30px;margin-bottom: 10px"
                  widgetVar="itemWidgetVar" styleClass="editableDataTable"  selection="#{classSoftwareElementController.selectedFieldSoftwareElements}" editMode="cell" editable="true"
                  paginator="false" paginatorAlwaysVisible="false" paginatorPosition="bottom" rowKey="#{item.hashCode()}" rows="10" rowsPerPageTemplate="10,20,30,40,50">
                    <p:ajax event="rowUnselectCheckbox" update="FieldSoftwareElement_listForm_btnsPanel"/>
                    <p:column selectionMode="multiple" style="width:16px;text-align:center"/>

       <p:column  headerText="#{bundle.FieldSoftwareElement_AccessFlag}">
          <p:cellEditor>
                   <f:facet name="output">
                      <p:outputLabel  value="#{item.accessFlag}"/>
                   </f:facet>
                   <f:facet name="input" id="cfh">
                      <p:autoComplete styleClass="search-box" title="Creator"
                                    id="ReferenceEventDialog_referenceEventForm_toCreatorIn" multiple="true"
                                    var="creator"                                   
                                    value="#{item.accessFlag}"
                                    completeMethod="#{sendLtrView.allowableActors}"
                                    converter="ActorRelationConverter" itemLabel="#{creator.title}"
                                    itemValue="#{creator}"
                                    disabled="#{tabParam.readOnly}" forceSelection="true">
                   </f:facet>
         </p:cellEditor>
       </p:column>
       <p:column headerText="#{bundle.FieldSoftwareElement_ColumnSize}">
           <p:cellEditor>
                  <f:facet name="output">
                     <p:outputLabel value="#{item.columnSize}"/>
                  </f:facet>
                  <f:facet name="input">
                    <p:inputNumber value="#{item.columnSize}" disabled="#{not classSoftwareElementController.selectedDynamic}"/>
                  </f:facet>
         </p:cellEditor>
     </p:column>                                             
     </p:dataTable>

1 Ответ

3 голосов
/ 21 октября 2019

Пожалуйста, смотрите этот билет: https://github.com/primefaces/primefaces/issues/3314

Это будет исправлено в 7.1. Если вы установите autoSelection="false" на автозаполнение, клавиша TAB будет работать как обычно и не будет выбирать элемент.

...