it-swarm.com.ru

HTML JavaScript Dropdown 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>
8
yanike

Наверное, просто

var a = dropdown1.selectedIndex;

если вы пытаетесь проверить, выбран ли нулевой параметр.

Либо так, либо задайте свои значения параметров в HTML и проверьте сами значения.

11
ADW

Вам нужно выбрать свойство value следующим образом:

var a = dropdown1.options[dropdown1.selectedIndex].value;
2
NakedBrunch

Я бы посоветовал вам сделать это следующим образом:

<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, мы просто устанавливаем значение текстового поля равным значению вашего блока выбора.
1
bigblind

это должно работать. Обратите внимание, что «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";
    }
    }
1
lihnid
var a = dropdown1.selectedIndex;
    if(a == 0){
      textbox.value = "hi";
    } else if(a == 1) {
      textbox.value = "bye";
    }
    }
0
Ovais Khatri

Вы сохраняете значение выбранного элемента в переменной 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";
    }
}
0
Alex
$('#selectid option:nth-child(1)').attr('selected', 'selected');
0
Imran