2014-03-04 36 views
0

我是新的蜜蜂primefaces。我有两个命令按钮提交并显示历史记录。我想在点击提交时禁用这些按钮。我可以在onclick功能的帮助下做到这一点,但它不会调用actionListner。但只有一个禁用按钮工作正常 如何做到这一点。请大家帮我上在onclick 2相同的功能是禁用()不适用于Primefaces

{

<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;" /> 

回答

0

试试这个

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

代替

showHistory.disable() 
submitBtn.disable() 
+0

我试过了,它禁用了这两个按钮,但是actionListener没有被调用。它不会进一步处理...... { –

+0

尝试'onstart ='而不是'onclick =' –

+0

感谢您的回复,但onstart根本不工作...... –

0

您的按钮将无法工作,因为禁用的组件没有在JSF请求处理生命周期处理。什么你的情况正在发生的事情是:

  1. 用户点击按钮触发
  2. onclick事件;按钮是无效的
  3. JSF看到按钮组件在视图中禁用并忽略它
  4. fileUploadController.uploadFiles不解雇

什么是理想的是后禁用按钮的方式的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"/> 
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隐藏功能。当点击提交按钮时,它将隐藏两个按钮,即“提交”和“显示历史记录”。