Disable `<h:commandButton>` after clicked, but action should be fired

倖福魔咒の 提交于 2019-11-30 15:21:40

问题


I have a <h:commandButton> in my XHTML page. I want the button to be disabled as soon as I click the button. Then the button should call the action. My button gets disabled as I expect but the problem is that the action is not fired.
<h:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}"/>

But if I remove the onclick attribute the action is fired.

Or if I used an <a4j:commandButton> it works.
Following a4j button works.
<a4j:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}"/>

How can I disable a <h:commandButton> after being clicked, so that the action still fires?


回答1:


Use setTimeout , that way the action will be fired and the button will be disabled...

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

You can also take a look at the following question too :How can I disable an h:commandButton without preventing the action and actionListener from being called?



来源:https://stackoverflow.com/questions/13116890/disable-hcommandbutton-after-clicked-but-action-should-be-fired

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!