如何禁用p:commandLink onclick并启用它oncomplete?

时间:2014-07-28 14:48:30

标签: jsf primefaces jsf-2.2

<p:commandButton>可以在与onclick关联的oncomplete属性的帮助下禁用widgetVar并启用<p:commandButton widgetVar="widget" onclick="PF('widget').disable()" oncomplete="PF('widget').enable()" value="Submit" process="@this" actionListener="#{bean.action}"/> ,如下所示。

<p:commandLink>

widgetVar怎么样?没有<p:commandLink>属性与{{1}}相关联。有没有捷径?

2 个答案:

答案 0 :(得分:3)

你是对的,commandLink没有任何小部件对象,但它毕竟是普通的链接,你可以通过jQueryCSS实现这一点:

CSS

a.disabled {
   pointer-events: none;
   cursor: default;
   color: gray;
}

XHTML

<p:commandLink id="ajaxSubmit" 
               value="Submit" 
               onclick="$('#ajaxSubmit').addClass('disabled')"
               oncomplete="$('#ajaxSubmit').removeClass('disabled')">
</p:commandLink>

注意:jQuery选择器可能会有所不同,但大部分都是$('#formId\\:ajaxSubmit')

答案 1 :(得分:0)

您可以使用基本的javascript实现这一目标。

  1. 为命令链接指定一个id

    <p:commandLink id="theLink"/>
    
  2. 通过javascript

    设置disabled属性
    <script>
    
        function toggleLink(currentStatus){
    
             document.getElementById("theLink").disabled=currentStatus;
        }
    
    </script>
    
  3. 使用commandLink上的基本脚本

    <p:commandLink id="theLink" onclick="toggleLink(true);" oncomplete="toggleLink(false);"/>
    
  4. 编辑:要在数据表中使用,您应该能够在onclick

    中内联函数
         <p:commandLink id="theLink" onclick="this.disabled=true;" oncomplete="this.disabled=false;""/>