Javascript 使用f:ajax-onevent时不更新布尔值
当选择某个选项时,它会触发控制器中的方法调用,从而更改regionController.invalidRegion值(true为false,反之亦然)。问题是在第一次更改后,该值不再在客户端更新,而是在服务器端正确更改 我有以下几点:Javascript 使用f:ajax-onevent时不更新布尔值,javascript,ajax,jsf,jsf-2,Javascript,Ajax,Jsf,Jsf 2,当选择某个选项时,它会触发控制器中的方法调用,从而更改regionController.invalidRegion值(true为false,反之亦然)。问题是在第一次更改后,该值不再在客户端更新,而是在服务器端正确更改 我有以下几点: var renderRegionMsg = function(val){ if(val === "true"){ alert("true"); document.getElementById("NavForm:regionf
var renderRegionMsg = function(val){
if(val === "true"){
alert("true");
document.getElementById("NavForm:regionform:notInRegion").style.visibility = "";
}
else{
alert("false");
document.getElementById("NavForm:regionform:notInRegion").style.visibility = "hidden";
}
};
以及以下jsf代码:
<h:selectOneMenu id="regionSelect" >
<f:selectItems ...... />
<f:ajax
id="regionListener"
listener="#{geoListProducer.changeRegion}"
render="stripe-provState"
onevent="renderRegionMsg('#{regionController.invalidRegion}')" />
</h:selectOneMenu>
您没有正确使用
。onevent
属性应该引用函数引用,而不是像通常在onclick
和friends上使用的那样包含内联脚本。
将调用函数引用三次,并带有一个隐式的数据
参数。发送ajax请求前一次,到达ajax响应后一次,以及基于ajax响应更新HTML DOM后一次
下面是一个正确用法的开始示例:
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;
}
}
声明如下:
<f:ajax ... onevent="functionName" />
与
您没有正确使用
。onevent
属性应该引用函数引用,而不是像通常在onclick
和friends上使用的那样包含内联脚本。
将调用函数引用三次,并带有一个隐式的数据
参数。发送ajax请求前一次,到达ajax响应后一次,以及基于ajax响应更新HTML DOM后一次
下面是一个正确用法的开始示例:
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;
}
}
声明如下:
<f:ajax ... onevent="functionName" />
与
<f:ajax ... onevent="renderRegionMsg" />