在调用f:ajax侦听器之前和之后执行JavaScript
在调用在调用f:ajax侦听器之前和之后执行JavaScript,javascript,ajax,jsf-2.2,Javascript,Ajax,Jsf 2.2,在调用之前和之后调用JavaScript操作有一种简单的方法,例如,我想调用窗口。在和窗口之前调用alert(“pre”)。在支持beanACtrl中调用onChange之后调用alert(“post”): <h:form> <h:inputText id="anId" value="#{cityCtrl.dbHost}"> <f:ajax event="change" listener="#{aCtrl.onChange}" execute
之前和之后调用JavaScript操作有一种简单的方法,例如,我想调用窗口。在和窗口之前调用alert(“pre”)
。在支持beanACtrl中调用onChange
之后调用alert(“post”)
:
<h:form>
<h:inputText id="anId" value="#{cityCtrl.dbHost}">
<f:ajax event="change" listener="#{aCtrl.onChange}" execute="@all"/>
</h:inputText>
</h:form>
添加多个f:ajax
元素似乎不起作用(也许应该?!),例如
仅调用ACtrl.onChange
。使用属性。它必须指向回调函数引用(因此不要包含括号!):
实际回调函数如下所示(JSF将自己提供参数):
另见:
- -表14.3和14.4
我怎么可能没有用OneEvent的javadoc(“处理UI事件的JavaScript函数的名称”)解决这个问题呢谢谢
<h:form>
<h:inputText id="anId" value="#{cityCtrl.dbHost}">
<f:ajax event="change" listener="#{aCtrl.toggle}" execute="@all"/>
<f:ajax event="change" listener="#{aCtrl.onChange}" execute="@all"/>
<f:ajax event="change" listener="#{aCtrl.toggle}" execute="@all"/>
</h:inputText>
</h:form>
function functionName(data) {
var status = data.status; // Can be "begin", "complete" or "success".
var source = data.source; // The parent HTML DOM element.
switch (status) {
case "begin": // Before the ajax request is sent.
// ...
break;
case "complete": // After the ajax response is arrived.
// ...
break;
case "success": // After update of HTML DOM based on ajax response.
// ...
break;
}
}