如何根据ajax结果更改CSS?

时间:2013-07-28 13:11:24

标签: jsf

我有一个提交ajax请求的按钮:

<h:commandButton>
  <f:ajax listener="..." onevent=".." onerror="" render="panel1" />
</h:commandButton>

<h:panelGrid id="panel1" styleClass="${bean.style}> ....

如果ajax通过更改bean.style成功,我可以更改CSS,但是我也想在发送ajax和ajax失败时更改。例如,我想在用户点击按钮时将样式更改为.panel-inprogress,失败时.panel-failed

我知道我可以在JavaScript中执行此操作,例如在onevent和onerror属性我的代码,但我想知道是否有“JSF”方法这样做。

2 个答案:

答案 0 :(得分:1)

文档说jsf使用onerror属性处理错误。没有提到jsf这样做的具体方法。我不相信你有任何其他选择。我相信你已经读过这个了,但无论如何这里是documentation

答案 1 :(得分:1)

我认为在这种情况下使用<f:ajax>的属性和Javascript是JSF方式。

启动另一个Ajax请求没有多大意义,例如通知bean第一个ajax请求正在进行中。它总是延迟和无意义的开销。

基于正在运行的Ajax请求的状态的更改(而不是它的内容)可以而且应该在客户端处理。