2011-07-04 5 views
8

Próbuję uzyskać listę rozwijaną, aby zmienić pole tekstowe, ale wydaje się, że problemy.HTML JavaScript Wybrano DropboxIndex

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

Odpowiedz

11

Prawdopodobnie właśnie:

var a = dropdown1.selectedIndex; 

jeśli starasz się, by sprawdzić, czy opcja zerowego jest zaznaczona.

Albo albo podaj wartości opcji w kodzie HTML i sprawdź same wartości.

+0

dziękuję:) Zadziałało! – yanike

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

Jesteś przechowywania wartości wybranego elementu w zmiennej a więc nie może być porównywana z jego indeksie. Zobacz poniżej poprawioną wersję.

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

będę porad można to zrobić w ten sposób:

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

zmian w kodzie:

  1. Przede wszystkim spojrzeć na polu wyboru, wszystko tagi opcji mają teraz atrybut "value". To informuje przeglądarkę, jaka powinna być wartość wejściowa, gdy wybrana jest pewna opcja. Możesz także użyć tego na swoją korzyść, aby ustawić krótsze wartości niż zawartość opcji, na przykład, gdy masz narzędzie wyboru kraju, jedną z opcji może być <option value='US'>United Stated</option>.
  2. W twoim skrypcie, nie masz już instrukcji "if", po prostu ustawiamy wartość pola tekstowego na wartość twojego pola wyboru.
+0

To jest inny sposób, w jaki mogę to zrobić. Dzięki! – yanike

1

to powinno działać. Należy pamiętać, że 'a' jest elementem DOM (opcja)

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"; 
} 
} 

lub

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

Musisz wybrać właściwość wartość w następujący sposób:

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