单击后禁用`<h:commandbutton>`,但应该触发操作</h:commandbutton>

时间:2012-10-29 06:32:49

标签: javascript jsf ajax4jsf

我的XHTML页面中有一个<h:commandButton>。我希望单击按钮后立即禁用该按钮。然后按钮应该调用该动作。我的按钮被禁用,因为我期望,但问题是该动作没有被触发。
<h:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}"/>

但如果删除onclick属性,则会触发操作。

或者,如果我使用了<a4j:commandButton>,它就可以了。
按照a4j按钮工作。
<a4j:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}"/>

如何在点击后禁用<h:commandButton>,以便操作仍然会触发?

1 个答案:

答案 0 :(得分:6)

使用setTimeout,这样就会触发操作,按钮将被禁用...

<h:commandButton value="Go"
   onclick="setTimeout('this.disabled = true;', 50);" 
   action="#{bean.go()}"/>

您也可以查看以下问题:How can I disable an h:commandButton without preventing the action and actionListener from being called?