簡體   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