PrimeFaces на selectCheckboxMenu щелкните внутри h: panelGrid вызывает переход страницы наверх - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть <p:selectCheckboxMenu> компонент внутри <h:panelGrid>, как вы можете видеть в примере:

    <h:panelGroup id="....">
        <p:fieldset id="....."
                    rendered="#{...}">

            <app:formInputTextarea/>
            <h:panelGrid columns="3">
                <h:panelGrid columns="2" cellpadding="1">

                    <p:selectCheckboxMenu id="temp-id"
                                          value="#{someTabView.someCodes}"
                                          label="...."
                                          panelStyle="width:270px"
                                          styleClass="ui-chkbxmenu" filter="true"
                                          filterMatchMode="contains" caseSensitive="false">
                        <f:selectItems value="#{someMainCodes}" var="tempCode"
                                       itemValue="#{tempCode}"
                                       itemLabel="#{.....}"/>
                    </p:selectCheckboxMenu>

                    <app:formCheckBox/>
                </h:panelGrid>

                <h:panelGrid columns="1">
                    <h:panelGroup>
                    <p:outputLabel value= "#{......}"/>
                    <p:commandButton id="......"/>
                    </h:panelGroup>
                </h:panelGrid>
            </h:panelGrid>
        </p:fieldset>
    </h:panelGroup>

Проблема в том, что когда я нажимаю на <p:selectCheckboxMenu>, страница переходит наверх, но только если:

  1. Использование Chrome (в других браузерах работает нормально)
  2. Браузер открыт на «большом экране» - монитор P C (на ноутбуке работает нормально)
  3. Страница есть прокручивается к нижней части страницы

Также проблема возникает в другом месте на другой странице с такими же условиями:

<h:panelGroup id="...."
                          rendered="#{(....)}"
                          layout="block"
                          style="width: 50%">
                <h:panelGroup>

                    <p:row>
                        <p:column>
                            <h:panelGrid columns="2" styleClass=".....">
                                <h:outputText value="#{msg[......']}"/>
                                <p:selectCheckboxMenu id="......."
                                                      label="#{msg['........']}"
                                                      value="#{.........}"
                                                      filter="true"
                                                      filterMatchMode="contains"
                                                      caseSensitive="false"
                                                      styleClass="ui-chkbxmenu">
                                    <f:selectItems value="#{.......}"
                                                   var="......."
                                                   itemValue="#{......}"
                                                   itemLabel="#{.......}"
                                                   itemDisabled="#{.........}"/>
                                </p:selectCheckboxMenu>
                            </h:panelGrid>
                        </p:column>
                    </p:row>

                </h:panelGroup>

Я не знаю, помогает ли это, но единственное, что мне удалось чтобы найти в первом случае, если вы прыгаете, прыжок <h:panelGrid> columns = "3"> пропал, но структура "ломается", и, учитывая, что второй случай не совпадает с первым, я не думаю, что это может быть проблема причинника. Также, выполняя отладку, я обнаружил, что после события click происходит вызов триггера функции, который делает объект сфокусированным, а после возврата страницы происходит переход! jqueryDebugFunctionImg

Кто-нибудь знает, почему это так? Может страница не соответствует html стандарту ...? Я не надеюсь, что кто-нибудь решит эту проблему (я знаю, что может быть так много вещей, которые могут вызвать такую ​​ошибку), но хотя бы некоторые идеи могут дать мне то, как мне нужно выглядеть или как правильно отладить эту проблему. Спасибо!

...