f:如果父输入被禁用,则不会触发ajax事件

时间:2014-11-20 21:21:40

标签: java ajax jsf

鉴于设置简单:

<h:inputText disabled="#{true}">
    <f:ajax listener="#{bean.listener}" execute="@form" render="@form" event="blur" />
</h:inputText>

如果输入字段是通过DOM操作(比如说JQuery)以编程方式启用的,那么仍然不会调用#{bean.listener}方法,因为没有向服务器发出AJAX请求。我可以看到原因:当它第一次渲染输入字段时,渲染器显然认为它已被禁用并将永远保持禁用状态,因此它甚至无法渲染进行AJAX调用的必要Javascript。

问题:

  1. 除了确保禁用的EL表达式在最初呈现时始终计算为true时,是否还有其他解决方法?
  2. 为什么它不总是在提交AJAX请求之前总是呈现必要的javasript,javascript代码本身在其中检查该元素当前是否已启用以决定分派AJAX请求。
  3. 此外,似乎如果一个元素最初呈现为已禁用,但通过DOM操作以编程方式启用,那么它也不会更新支持bean的模型值?

0 个答案:

没有答案