Примечание: я выставил рабочий пример этого кода здесь: http://jsfiddle.net/F87tJ/
Давайте возьмем следующий HTML-код:
<html>
<head></head>
<body>
<p>Select variable value below:</p>
<div>
<form name="form001">
<select name="choice">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
</div>
<script type="text/javascript">
// JavaScript goes here
</script>
</body>
</html>
Теперь я собираюсь предположить, что вы хотите ответить пользователю, который изменил выбор выпадающего списка. Это довольно просто в JavaScript. Просто получите ссылку на элемент <select>
и присоедините к нему обработчик события . Обработчик события - это просто function
, который будет вызываться при возникновении данного события. В этом случае:
// First, get the <select> element. findElementsByName() returns a collection,
// we only want the first elements that's found (hence the [0]):
var choice = document.getElementsByName('choice')[0];
// Now attach a handler to the onchange event.
// This function will be executed if the <select>ion is changed:
choice.onchange = function() {
// Do something
};
Со мной так далеко? Хорошо.
Теперь вы хотите показать «Текст1», «Текст2» или «Текст3», основываясь на выборе, верно? Итак, мы должны знать, какой <option>
выбран. Это тоже легко:
var optionIndex = choice.selectedIndex;
Это просто даст вам нулевой индекс выбранного <option>
. Таким образом, если выбран первый вариант, optionIndex
будет иметь значение 0
.
Чтобы показать текст, основанный на выделении, нам нужно несколько строк. Поскольку здесь мы имеем дело с коллекцией, давайте поместим ее в array
:
var labels = [
"Text1",
"Text2",
"Text3"
];
Array
s в JavaScript также начинаются с нуля, поэтому label[0]
будет 'Text1', labels[1]
'Text2' и т. Д.
Если мы соберем все это вместе, мы получим что-то вроде этого:
var choice = document.getElementsByName('choice')[0];
var labels = [
"Text1",
"Text2",
"Text3"
];
choice.onchange = function() {
var optionIndex = choice.selectedIndex; // The index of the selected option
var text = labels[optionIndex]; // The label that corresponds to that index
alert(text);
};
Надеюсь, это поможет. : -)