jsf + jquery:通过JQuery禁用并启用h:commandButton

时间:2013-09-01 11:48:53

标签: jquery jsf

我有一个带有h:commandButton的jsf表单作为提交按钮:

<h:form>
     <h:commandButton id="import_opener" binding="#{submit}" disabled="true" action="#{bean.save}" value="submit"/>
</h:form>

我尝试通过JQuery将“disabled”属性设置为true(以启用按钮):

$("[id='#{submit.clientId}']").prop("disabled", false);

一切正常。但是当我提交commandButton时,动作#{bean.save}不会触发,只需重新加载表单页面即可。如果我不通过JQuery对h:commandButton进行操作,那么动作就是火。

请在JQuery更改h:commandButton的disable属性后帮助我运行#{bean.save}。

1 个答案:

答案 0 :(得分:1)

这是因为JSF具有一些内置的安全功能。如果“可能”,则检查传入请求。传入的请求告诉JSF已经按下了一个实际被禁用的按钮。因此请求将被视为无效并被拒绝。这很好,因为浏览器可以通过多种方式进行操作。

解决方案是不设置disabled="true",但是在JSF端启用它并通过jQuery禁用它,而不是相反。