on onclick 2相同的功能,即禁用()在Primefaces中不起作用

时间:2014-03-04 15:20:26

标签: jquery jsf primefaces

我是新的蜜蜂。我有两个命令按钮说提交和显示历史记录。我想在点击提交时禁用这些按钮。我能够在onclick功能的帮助下做到这一点,但它不会调用actionListner。但只有一个禁用按钮工作正常 怎么做。请帮助我

{

<p:commandButton id="submitBtn"  value="Submit"  ajax="false" onclick="showHistory.disable(),submitBtn.disable();"  widgetVar="submitBtn" style="margin:10px;" />

}

<p:commandButton id="showHistory"  value="show History"  widgetVar="showHistory"   ajax="false" action="#{fileController.showHistory}"
                          style="margin:10px;" />

后来我也试过这个代码但是后来没有调用actionListner

<p:commandButton id="submitBtn"  value="Submit" ajax="false" icon="ui-icon-check"  actionListener="#{fileUploadController.uploadFiles}"
                                 onclick="PF('showHistory').disable();PF('submitBtn1').disable();"  widgetVar="submitBtn1" 
                                   style="margin:10px;" />

3 个答案:

答案 0 :(得分:0)

试试这个

PF('showHistory').disable()
PF('submitBtn').disable() 

而不是

showHistory.disable()
submitBtn.disable() 

答案 1 :(得分:0)

您的按钮无法正常工作,因为在JSF请求处理生命周期中未处理已禁用的组件。你的情况是:

  1. 用户点击按钮
  2. onclick事件被触发;按钮被禁用
  3. JSF看到视图中的按钮组件被禁用并忽略它
  4. fileUploadController.uploadFiles未被解雇
  5. 在调用actionListener之后禁用按钮的方法是什么,但是我假设你感兴趣的是在关闭后立即禁用按钮单击,以防止进一步提交表单。

    相反,我推荐BlockUI。作为一个例子

    <p:commandButton id="submitBtn"  value="Submit" ajax="false" icon="ui-icon-check"  actionListener="#{fileUploadController.uploadFiles}" widgetVar="submitBtn1" style="margin:10px;" />
    
    <p:blockUI block="submitBtn" trigger="submitBtn"/>
    

答案 2 :(得分:0)

我已经通过jQuery解决了。

<h:outputScript target="body">
        $("#form1\\:submitBtn").click(function(){
                $("#form1\\:submitBtn").hide();
                $("#form1\\:showHistory").hide();
                $("#form1\\:tradeDate_input").hide();
         });            
</h:outputScript>

我们知道xhtml会创建自己的表单ID。它附加用户表单ID。和简单的jQuery隐藏功能。它将隐藏两个按钮,即“提交”按钮。和&#39;显示历史&#39;点击“提交”按钮时。