通过按Enter并在不触发commandButton提交事件的情况下,在treeTable主界面上编辑行

时间:2019-04-16 20:37:46

标签: jquery jsf primefaces

我试图通过按Enter键在Primefaces TreeTable上接受editRow事件。但是在这样做时,<p:commandButton/>捕获了事件。

我尝试使用<h:outputScript/> jQuery:

        $('tmt-library-tree').keypress(function(event) {
            if(event.which == '13') {
                event.preventDefault();
            } 
        });

但是它会影响整个TreeTable。我还尝试了以下形式的选择器:

$("#screens\\:form\\:libraryGroupTreeTable\\:addGlobal").keypress(function(event) {
            if(event.which == '13') {
                event.preventDefault();
            } 
        });

从Chrome开发者工具的“检查”窗口中获取并确保存在。

这是Primefaces TreeTable

<p:treeTable id="libraryGroupTreeTable" styleClass="library-tree" 
                 var="dummy" nodeVar="hltsOrHltsfOrLg" value="#{libraryTree}" emptyMessage=""
                 selectionMode="single" editable="#{editable}" scrollable="true">

并添加了<p:ajax>来处理rowEdit

<p:ajax event="rowEdit" listener="#{libraryTree.onRowEdit}" onstart="vres.onAjax(cfg, '#{libraryTree.gid}');" update="libraryGroupTreeTable"/>

最后,这是我的<p:outputPanel>

<p:outputPanel id="namePanel" style="display: inline-flex;">
            <span class="tree-node-icons #{hltsOrHltsfOrLg.css}"/>
            <div style="margin-top: 3px;">
              <p:cellEditor>
                <f:facet name="input"><p:inputText value="#{hltsOrHltsfOrLg.name}"/></f:facet>
                <f:facet name="output"><h:outputText value="#{hltsOrHltsfOrLg.name}"/></f:facet>
              </p:cellEditor>
            </div>
 </p:outputPanel>
  

我需要ENTER键才能执行<p: ajax/>标签在   编辑单元格的时刻。

谢谢!

0 个答案:

没有答案