繁体   English   中英

将函数参数从onchange传递给JavaScript函数

[英]Pass function parameters from onchange to JavaScript function

好的,当下拉列表框发生更改时,我目前正在使用AJAX更新部分网站,但是我无法传递参数以供该功能使用。

这是HTML:

<script type='text/javascript' src='ajax.js'></script> //Where to find function

<div id="combobox" style="width: 150px; height: 300px; overflow-y: scroll">
  <select onchange="MakeRequest(test); location = this.options[this.selectedIndex].value;"> 
    <option>Races</option>

    <?php ComboBox() ?>
  </select>
   .
   .

这是外部ajax.js文件中的AJAX函数:

function MakeRequest(test) {
  var linkInfo = "teleport.php?call=" + test;
  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4) {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("GET", linkInfo, true);
  xmlHttp.send(null);
}

我将如何工作?

location=this.options[this.selectedIndex].value

这会将页面更改到其他位置。 那不是AJAX,将其删除。

取而代之的是,将this.options[this.selectedIndex].value (或只是this.value同样的东西)放入test

Ajax本质是异步的。 我想您想先向服务器发送AJAX请求,并在响应结果上将客户端的用户重定向到另一页。

代码中发生的事情是,首先, MakeRequest()函数,但该函数立即返回(因为ajax是异步的),因此将调用onchange属性的下一部分,并将用户重定向到另一个页。

为了进行测试,使您的ajax调用同步。 这里

<select onchange="MakeRequest(this.value); " />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM