Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用f:ajax-onevent时不更新布尔值_Javascript_Ajax_Jsf_Jsf 2 - Fatal编程技术网

Javascript 使用f:ajax-onevent时不更新布尔值

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

当选择某个选项时,它会触发控制器中的方法调用,从而更改regionController.invalidRegion值(true为false,反之亦然)。问题是在第一次更改后,该值不再在客户端更新,而是在服务器端正确更改

我有以下几点:

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" />