2013-07-28 62 views
0

我有一个按钮,提交Ajax请求:如何根据ajax结果更改CSS?

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

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

我可以改变CSS如果AJAX是通过改变bean.style成功,但我也想改变时发送Ajax和阿贾克斯时失败。例如,当用户单击按钮.panel-failed失败时,我想将样式更改为.panel-inprogress

我明白我可以在JavaScript中做到这一点,比如onevent和onerror属性我的代码,但我想知道是否有“JSF”这样做的方式。

回答

1

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

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

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

1

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