2017-05-28 223 views
1

在我的HTML文件中,我有一個select tag,其中當我選擇第一個時,另一個select tag應填寫一些選項,當選擇其他選項時,其他一些選項將填寫另一個選項select tag選擇標記的填充選項

我這樣做,在我的HTML:

 <script type="text/javascript"> 
     function fillWirelessChannel(){ 
      var index; 
      var selectTag= document.getElementById('wirelessChannel');      selectTag.options.length = 0; // wireless should 
      selectTag.options.length = 0; 
      var auto = document.createElement("option"); 
      auto.value= 'auto'; 
      auto.innerHTML = 'auto'; 
      if (document.getElementById('country').selected="1") { 
        for(index=4920; index<=5825; index+=5){ 
         var opt = document.createElement("option"); 
         opt.value= index; 
         opt.innerHTML = index;  
         selectTag.appendChild(opt);   
        } 
       } else if(document.getElementById('country').selected="2"){    
        for(index=4920; index<=6075; index+=5){ 
         var opt = document.createElement("option"); 
         opt.value= index; 
         opt.innerHTML = index;  
         selectTag.appendChild(opt);   
        } 
       } 
     } 
    </script> 

的wirelessChanne是選擇標籤必須填寫。 國家/地區標籤位於if語句中,選定的是我們的條件。 現在,當我運行代碼時,第二個如果不起作用(它在第二個語句中不會顯示到6075),也不會將自動選項添加到選擇標記(我想在第一個選項中顯示auto無線信道沒有條件,我的意思是在第一個索引它應該顯示自動) 我在哪裏做錯了?

+0

你永遠不會加入*自動*到* selectTag * – ControlAltDel

+2

您正在使用單個'='邏輯測試的一件事情,您應該使用雙'==' – RamRaider

+0

選項元素不包含標記,因此設置其* innerHTML *屬性是不合適的。改爲設置* text *屬性。 「標籤」屬於標記,DOM包含元素。 – RobG

回答

0

在使用if語句==,而不是=。添加一個選項來自動選擇追加,你對loop.You創建的選項,但之前忘了的選項。使用selectTag.appendChild(auto);追加以前生產的循環

fillWirelessChannel(); 
 

 
function fillWirelessChannel(){ 
 
      var index; 
 
      var selectTag= document.getElementById('wirelessChannel');      selectTag.options.length = 0; /* wireless should */ 
 
      selectTag.options.length = 0; 
 
      var auto = document.createElement("option"); 
 
      auto.value= 'auto'; 
 
      auto.innerHTML = 'auto'; 
 
      selectTag.appendChild(auto);  
 
      console.log(document.getElementById('country').value); 
 
      
 
      if (document.getElementById('country').value=="1") { 
 
        for(index=4920; index<=5825; index+=5){ 
 
         var opt = document.createElement("option"); 
 
         opt.value= index; 
 
         opt.innerHTML = index;  
 
         selectTag.appendChild(opt);   
 
        } 
 
       } else if(document.getElementById('country').value=="2"){    
 
        for(index=4920; index<=6075; index+=5){ 
 
         var opt = document.createElement("option"); 
 
         opt.value= index; 
 
         opt.innerHTML = index;  
 
         selectTag.appendChild(opt);   
 
        } 
 
       } 
 
     }
<select id="wirelessChannel"> 
 
</select> 
 

 
<select id="country" onchange="fillWirelessChannel()"> 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 
</select>

+0

謝謝你的迴應先生。 是的,你是對的。 再次感謝 :-) –

1

測試值是否等於您需要使用雙等號的值 - 將值設置爲您將使用單個等號的值。

function fillWirelessChannel(){ 
    var index; 

    var selectTag= document.getElementById('wirelessChannel'); 
     selectTag.options.length = 0; 

    var auto = document.createElement('option'); 
     auto.value= 'auto'; 
     auto.text = 'auto'; 

    selectTag.appendChild(auto); 

    var oCountry=document.getElementById('country'); 

    if (oCountry.value==1) { 
     for(index=4920; index <= 5825; index+=5){ 
      var opt = document.createElement('option'); 
       opt.value= index; 
       opt.text = index; 

      selectTag.appendChild(opt);   
     } 
    } else if(oCountry.value=='2'){    
     for(index=4920; index <= 6075; index+=5){ 
      var opt = document.createElement('option'); 
       opt.value= index; 
       opt.text = index; 

      selectTag.appendChild(opt);   
     } 
    } 
} 
+0

沒有一個很好的理由使用* selectedIndex *,因爲一些古老的Netscape Navigator版本,'oCountry.value =='1''就足夠了。 – RobG

+0

好的 - 我不知道,我一直使用帽子的語法(自NN的日子以來),所以現在我可以縮短我的代碼 - 謝謝@RobG – RamRaider

+0

有趣的是,這些舊的模因依然存在。 ;-) – RobG