我有一个带有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}。
答案 0 :(得分:1)
这是因为JSF具有一些内置的安全功能。如果“可能”,则检查传入请求。传入的请求告诉JSF已经按下了一个实际被禁用的按钮。因此请求将被视为无效并被拒绝。这很好,因为浏览器可以通过多种方式进行操作。
解决方案是不设置disabled="true"
,但是在JSF端启用它并通过jQuery禁用它,而不是相反。