PowerEgg
@PowerEgg

Почему скрипт не возвращает значение выбранной опции в select?

Создал селектор с тремя опциями и кнопку, при нажатии на которую высвечивается окошко со значением выбранной опции. Но возвращается только значение первой опции, даже если выбрана другая.
Вот код
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
	<?php

		$array = ["Baba", "Yaga", "NeZlaya"];

		echo '<select id="user">';
            for ($i = 0; $i < count($array); $i++) {
                echo '<option value="'.$i.'">'.$array[$i].'</option>';
            }
        echo '</select>';
	?>

	<button type="button" id="button">Add</button>

	<script>
		var n = document.getElementById("user").options.selectedIndex;
		var txt = document.getElementById("user").options[n].value;

		button.addEventListener("click", function () {
		    alert(txt);
		})
	</script>

</body>
</html>


Постоянно возвращается 0. Что делаю не так?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@r1ch
https://jsfiddle.net/rishatsharafiev/pbfye19f/

Во-первых, необходимо каждый раз перезаписывать переменные n, txt новыми значениями после клика, поэтому эти переменные я перенес в обработчик клика. Во-вторых selectIndex находится по след пути document.getElementById("user").selectedIndex
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
KarleKremen
@KarleKremen
Игнорирую Bootstrap
Вы вставляете код в Тостер, а не в Codepen/JSF. Вот что не так
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы