2011-07-04 34 views
8

我試圖讓下拉改變文本框,但似乎有問題。HTML JavaScript下拉selectedIndex

<head> 
    <title>DropDown</title> 
    <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
    <meta name="generator" content="Geany 0.20" /> 
    <script type="text/javascript"> 
     function chkind() { 
      var dropdown1 = document.getElementById('dropdown1'); 
      var textbox = document.getElementById('textbox'); 
      var a = dropdown1.options[dropdown1.selectedIndex]; 
      if(a == 0){ 
       textbox.value = "hi"; 
      } else if(a == 1) { 
      textbox.value = "bye"; 
     } 
    } 
    </script> 
</head> 

<body> 
    <select onchange="chkind()" id="dropdown1"> 
     <option>Hi</option> 
     <option>Bye</option> 
    </select><br /> 
    <input id="textbox" type="text" /> 
</body> 

回答

11

也許只是:

var a = dropdown1.selectedIndex; 

如果你想檢查零選項被選中。

要麼,要麼在HTML中給出您的選項值,並檢查它們自己的值。

+0

謝謝: ) 有效! – yanike

0
var a = dropdown1.selectedIndex; 
    if(a == 0){ 
     textbox.value = "hi"; 
    } else if(a == 1) { 
     textbox.value = "bye"; 
    } 
    } 
0

要存儲在變量a所選擇的項目的值,以便它不能被針對其索引進行比較。請參閱下面的更正版本。

function chkind(){ 
    var dropdown1 = document.getElementById('dropdown1'); 
    var textbox = document.getElementById('textbox'); 
    var a = dropdown1.selectedIndex; 

    if(a == 0){ 
     textbox.text = "hi"; 
    } else if(a == 1) { 
     textbox.value = "bye"; 
    } 
} 
1

我會建議你做這種方式:

<head> 
    <title>DropDown</title> 
     <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
     <meta name="generator" content="Geany 0.20" /> 
     <script type="text/javascript"> 
     function chkind(){ 
     var dropdown1 = document.getElementById('dropdown1'); 
     var textbox = document.getElementById('textbox'); 
     textbox.value=dropdown1.value; 
     } 
     </script> 
    </head> 
    <body> 
    <select onchange="chkind()" id="dropdown1"><option value='Hi'>Hi</option><option value = 'Bye'>Bye</option></select><br /><input id="textbox" type="text" /> 
    </body> 

的更改代碼:

  1. 首先,來看看選擇框,所有選項標籤現在具有「值」屬性。這告訴瀏覽器當選擇某個選項時輸入應該具有的值。您還可以利用這個優勢來設置比選項內容更短的值,例如,當您有國家選擇工具時,您的選項之一可以是<option value='US'>United Stated</option>
  2. 在您的腳本中,您不再有if語句,我們只是將文本框的值設置爲您選擇框的值。
+0

這是我可以去解決的另一種方法。謝謝! – yanike

1

這應該工作。請注意, 'A' 是的DOM元素(可選)

function chkind(){ 
var dropdown1 = document.getElementById('dropdown1'); 
var textbox = document.getElementById('textbox'); 
var a = dropdown1.options[dropdown1.selectedIndex]; 
if(a.index == 0){ 
    textbox.value = "hi"; 
} else if(a.index == 1) { 
    textbox.value = "bye"; 
} 
} 

function chkind(){ 
    var dropdown1 = document.getElementById('dropdown1'); 
    var textbox = document.getElementById('textbox'); 
    if(dropdown1.selectedIndex == 0){ 
     textbox.value = "hi"; 
    } else if(dropdown1.selectedIndex == 1) { 
     textbox.value = "bye"; 
    } 
    } 
2

您需要選擇的價值屬性,如下所示:

var a = dropdown1.options[dropdown1.selectedIndex].value; 
0
$('#selectid option:nth-child(1)').attr('selected', 'selected');