【发布时间】:2012-10-18 11:42:27
【问题描述】:
我的 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>,以便该操作仍然触发?
【问题讨论】:
-
@ViralShah :我希望该按钮在单击一次后被禁用。您的解决方案是否仍然适用?你是说
onclick="this.disabled = 'disable'"?它也不起作用。 :( -
为什么不设置一些任意值作为
false当按钮被点击?但在设置值之前,您应该先检查该值是否为true,然后再继续。这样一来,它可能看起来不会被禁用,但在技术上会被禁用。 -
@ianpgall:好主意。问题是按钮看起来仍然启用。
-
如果你使用
<a4j:commandButton>,你可以使用oncomplete在动作执行后执行的javascript方法:<a4j:commandButton value="Go" onclick="this.disabled=true" action="#{bean.go()}" oncomplete="this.disabled=true" />
标签: javascript jsf ajax4jsf