每次在微调器中发生更改事件时,这段简单的代码都会发出警报。但是,ajax状态表示请求已完成,并且未通知错误。
<p:ajaxStatus/>
<p:spinner value="#{testBean.number}"
id="testSpinner" min="1" max="20">
<f:ajax event="change" onerror="alert('error')"/>
</p:spinner>
ajax状态的内容是这个:
<f:facet name="default">
<h:outputText value="Status: StandBy" />
</f:facet>
<f:facet name="onerror">
<h:outputText value="Status: onerror" />
</f:facet>
<f:facet name="complete">
<h:outputText value="Status: Completed" />
</f:facet>
答案 0 :(得分:3)
您必须编写一些返回onerror属性的函数类型的东西。如果编写函数调用,则调用此函数以获取值,如果此值是函数类型则没有问题,但alert
函数不返回任何函数类型,而且它生成在屏幕上打印消息的副作用。所以你要做的是:
定义myfunction
函数:
<script>
var myfunction = function(){alert('error')};
</script>
然后执行:
<f:ajax event="change" onerror="myfunction"/>
注意:强>
注意不要混淆<f:ajax ... />
和<p:ajax ... />
。这两个是等价的:
<f:ajax onerror="function(){alert('ERROR')}" />
和
<p:ajax onerror="alert('ERROR')" />