簡體   English   中英

JavaScript:輔助組合框不刷新

[英]JavaScript: Secondary combobox does not refresh

我想用一個依賴於另一個下拉列表的值填充一個下拉列表,也就是說,當我在第一個控件中選擇一個項目時,第二個控件應加載相應的“子項”。

這是我的JS代碼(在HTML頭中):

<script type="text/javascript">

var tipos = new Array("Tipo1", "Tipo2", "Tipo3");
var subtipos_aux = new Array();
subtipos_aux[0]="Esto no deberia aparecer";
subtipos_aux[1]="Subtipos para TIPO1|Subtipos para TIPO1";
subtipos_aux[2]="Subtipos para TIPO2|Subtipos para TIPO2";
subtipos_aux[3]="Subtipos para TIPO3|Subtipos para TIPO3|Subtipos para TIPO3";

function cargarTipos() {
    var lista = document.getElementById('__tipo');
    var x, i = 0;
    for(x in tipos){
        lista.options[i++] = new Option(tipos[x],tipos[x]);
    }
}

function cargarSubtipos(id_tipo) {
    var lista = document.getElementById('__subtipo');
    var x, i = 0; id_tipo++;
    var subtipos = subtipos_aux[id_tipo].split("|");
    for(x in subtipos) {
        lista.options[i++] = new Option(subtipos[x],subtipos[x]);
    }
}

這就是我在HTML主體中調用函數的方式:

<fieldset>
  ...
  <select id="__tipo" name="__tipo" onchange="cargarSubtipos(this.selectedIndex);">
  ...
  <select id="__subtipo" name="__subtipo">
  ...
</fieldset>

<script language="javascript">cargarTipos("__tipo");</script>

主列表加載完美,當我從中選擇一個選項時,將調用讀取子類型的函數。 但是,輔助列表未顯示任何內容! 我到處都發出警報,並注意到:

  1. 讀取selectedIndex的值:OK
  2. 從subtipos_aux獲取適當的元素:確定
  3. 將subtipos_aux轉換為subtipos(數組)是可以的(我在for循環中放了一個警報)

就這樣,有人可以告訴我我在做什么錯嗎?

謝謝!

加載時不會填充選擇,因此需要將其放在cargarTipos的末尾:

cargarSubtipos(0);

有一個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM