javascript - 单击后禁用 `<h:commandButton>`,但应触发操作

标签 javascript jsf ajax4jsf

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

但是如果我删除 onclick触发 Action 的属性。

或者如果我使用 <a4j:commandButton>有用。
跟随a4j按钮工作。
<a4j:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}"/>

如何禁用 <h:commandButton>被点击后, Action 仍然触发?

最佳答案

使用 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?

关于javascript - 单击后禁用 `<h:commandButton>`,但应触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13116890/

相关文章:

javascript - 页面多次刷新/重新加载

javascript - 检测用户对使用 Jquery ".html()"创建的 <select> 列表的更改

java - 使用 geoJSF map 不可见

jsf-2 - 单 f :viewParam fails validation on postback (ajax) requests on a ViewScoped bean

java - 性能问题 - JSF 中 AjaxStateHolder 中的 LRUMap()?

javascript - Phusion 乘客 - 语法错误 : Unexpected token

javascript - 数据集的线性插值通常是如何实现的?

java - 如果关联组件未呈现,可以调用 JSF Bean 的 Setter 吗?

jsf - 读取托管 bean 中的资源包属性