gpt4 book ai didi

javascript - JSF h :commandButton not invoked after setting disabled=true in JavaScript 的操作

转载 作者:行者123 更新时间:2023-11-28 02:40:25 27 4
gpt4 key购买 nike

谁能解释一下以下行为?在 JavaScript 中禁用命令按钮时,操作方法永远不会执行。

<h:form>
<h:commandButton value="test" action="#{bean.test}" onclick="disabled=true" />
</h:form>

最佳答案

当 HTML 表单元素被禁用时,其 name=value对不会作为 HTTP 请求参数发送,因此 JSF 将永远不会在请求参数映射中找到它。对于命令按钮,这又意味着永远不会调用该操作。

您需要在表单提交后不久禁用该按钮。建议使用disabled属性没有意义,因为为时已晚。它在提交表单期间不会设置,但仅在响应返回时设置。

为了在这种特定情况中实现您的特定功能需求,您可以使用 JS 来超时禁用。

<h:commandButton ... onclick="setTimeout('document.getElementById(\'' + this.id + '\').disabled=true;', 50);" />

但是使用 <f:ajax onevent> 会更好。

另请参阅:

关于javascript - JSF h :commandButton not invoked after setting disabled=true in JavaScript 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com