0

帮助!我的一个 Javascript 函数有一个问题,该函数具有由“onreadystatechange”驱动的内部 Javascript 函数。

所以我想要在我的主要 JS 代码中做的就是找出这个函数运行时 jsonWR.SURG.EXIST_IND 的值。当 INNERretval 警报运行时,该值正确输出为 1....这是我所期望的。然后就在我在主手术Scheduled() 函数结束时返回值之前,ENDretval 说该值现在为 0。

我确信我在这里遗漏了一些基本的东西,所以有人可以帮助我。

另外,当调用 SurgeryScheduled() 函数时,我将一个变量设置为返回值:

var q = 0;
q=surgeryScheduled(<someID>);
alert("q:"+q);

上面的警报返回 1,而我希望它返回 0,因为上面的 ENDretval 为 0。我在这里缺少什么?

function surgeryScheduled(srgnID){

 var srgnPrsnlID = srgnID;                 
 var sdt         = document.getElementById('sdt').value;
 var sdtc        = sdt.toUpperCase();
 var edt         = document.getElementById('edt').value;
 var edtc        = edt.toUpperCase();

 var paramString;
     paramString =""
     paramString +=            '^MINE^,'
                  +             srgnPrsnlID
                  +             ',^'
                  +             sdtc
                  +             '^,^'
                  +             edtc
                  +             '^'

 var WRInfo         = new XMLCclRequest();

 //;  Call the ccl progam and send the parameter string
 WRInfo.open("GET", "CH_MP_HAVE_SURGERY_SCHED");
 WRInfo.send(paramString);

 //; Get the response
 WRInfo.onreadystatechange = function () {
    if (WRInfo.readyState == 4 && WRInfo.status == 200) {
       var jsonWRResp = WRInfo.responseText;

       if (jsonWRResp != undefined && jsonWRResp.length !=0) {
          jsonWR = eval('(' + jsonWRResp + ')');
       }

      //; Make sure everything checks out, then return bool
      if (jsonWR){
          retval    = jsonWR.SURG.EXIST_IND;   
          alert("INNERretval:"+retval);

      }//;jsonWR

    }//;WRInfo.readyState == 4 && WRInfo.status == 200
}//;WRInfo.onreadystatechange 

alert("ENDRetval:"+retval);
return retval;

}

4

0 回答 0