我的代码:

<h:form id="newBSTypePanel" >
    <h:panelGrid columns="2" id="newRecod" >
        <h:outputText value="Name"/><h:inputText value="#{treeTableController.newBStypeBean.currentObject.TYPENAME.value}" required="true" />
        <p:commandButton value="save" action="#{treeTableController.saveNewNodes}" oncomplete="Dlg.hide()" update="productDataForm"/>
        <p:commandButton value="close" oncomplete="Dlg.hide()" />
    </h:panelGrid>
</h:form>

保存 Action 有很多功能。如果我反复单击该按钮,则可能会在数据库中保存一些记录。那不是我的愿望。如何防止多次点击并解决此问题?

最佳答案

<p:commandButton>的客户端API小部件:

  • PrimeFaces.widget.CommandButton
  • 方法参数返回类型说明
  • disable()-void禁用按钮
  • enable()-void启用按钮

  • 所以你可以这样使用:
    <p:commandButton widgetVar="saveButton"
                     onclick="saveButton.disable()"
                     value="save"
                     action="#{treeTableController.saveNewNodes}"
                     oncomplete="saveButton.enable();Dlg.hide()"
                     update="productDataForm"/>
    

    10-07 13:17
    查看更多