<select onchange="test()" id="select_id">
<option value="0">-Select-</option>
<option value="1">Communication</option>
</select>
Мне нужно получить значение выбранной опции в javascript: кто-нибудь знает, как получить выбранное значение или текст, расскажите, пожалуйста, как написать для него функцию. Я назначил функцию onchange () для выбора, что мне делать после этого?
javascript
Шива
источник
источник
value
изoption
который был выбран , то ...<select onchange="window.alert(this.value);">
...option
S ...</select>
... должен получить я только что , и больше ничего.Ответы:
Используйте для этого либо JavaScript, либо jQuery.
Использование JavaScript
<script> function val() { d = document.getElementById("select_id").value; alert(d); } </script> <select onchange="val()" id="select_id">
Использование jQuery
$('#select_id').change(function(){ alert($(this).val()); })
источник
select.text
или в jQueryselect.text()
.$('#select_id option:selected').text()
Это вернет текст выбранной опции, Select или Communicationdocument.getElementById("select_id").onchange = (evt) => { console.log(evt.srcElement.value); }
Если вы ищите это в Google и не хотите, чтобы прослушиватель событий был атрибутом, используйте:
document.getElementById('my-select').addEventListener('change', function() { console.log('You selected: ', this.value); });
<select id="my-select"> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option> </select>
источник
function test(a) { var x = (a.value || a.options[a.selectedIndex].value); //crossbrowser solution =) alert(x); }
<select onchange="test(this)" id="select_id"> <option value="0">-Select-</option> <option value="1">Communication</option> <option value="2">Communication</option> <option value="3">Communication</option> </select>
источник
a.value
? Есть ли браузеры, которые действительно поддерживают такое? нельзя просто использоватьa.options[a.selectedIndex].value
?Нет необходимости в функции замены. Вы можете получить значение одной строкой:
document.getElementById("select_id").options[document.getElementById("select_id").selectedIndex].value;
Или разделите его для лучшей читаемости:
var select_id = document.getElementById("select_id"); select_id.options[select_id.selectedIndex].value;
источник
Вау, среди ответов пока нет действительно многоразовых решений ... Я имею в виду, что стандартный обработчик событий должен получать только
event
аргумент и вообще не должен использовать идентификаторы ... Я бы использовал:function handleSelectChange(event) { // if you want to support some really old IEs, add // event = event || window.event; var selectElement = event.target; var value = selectElement.value; // to support really old browsers, you may use // selectElement.value || selectElement.options[selectElement.selectedIndex].value; // like el Dude has suggested // do whatever you want with value }
Вы можете использовать этот обработчик с каждым встроенным js:
<select onchange="handleSelectChange(event)"> <option value="1">one</option> <option value="2">two</option> </select>
jQuery:
jQuery('#select_id').on('change',handleSelectChange);
или ванильный обработчик JS:
var selector = document.getElementById("select_id"); selector.onchange = handleSelectChange; // or selector.addEventListener('change', handleSelectChange);
И не нужно переписывать это для каждого
select
элемента, который у вас есть.Пример фрагмента:
function handleSelectChange(event) { var selectElement = event.target; var value = selectElement.value; alert(value); }
<select onchange="handleSelectChange(event)"> <option value="1">one</option> <option value="2">two</option> </select>
источник
let dropdown = document.querySelector('select'); if (dropdown) dropdown.addEventListener('change', function(event) { console.log(event.target.value); });
источник
this
в стрелочной функции получает свой контекст из своего лексического окружения, но обычная функция имеет собственное this. Проверьте этоИспользовать
document.getElementById("select_id").selectedIndex
Или получить значение:
document.getElementById("select_id").value
источник
<script> function test(a) { var x = a.selectedIndex; alert(x); } </script> <select onchange="test(this)" id="select_id"> <option value="0">-Select-</option> <option value="1">Communication</option> <option value="2">Communication</option> <option value="3">Communication</option> </select>
в предупреждении вы увидите значение INT выбранного индекса, обработайте выбор как массив, и вы получите значение
источник
HTML:
<select onchange="cityChanged(this.value)"> <option value="CHICAGO">Chicago</option> <option value="NEWYORK">New York</option> </select>
JS:
function cityChanged(city) { alert(city); }
источник
Интересно , что все выложил о
value
иtext
опции , чтобы получить от<option>
и никто не предложилlabel
.Так что я
label
тоже предлагаю , поскольку поддерживается всеми браузерамиЧтобы получить
value
(так же, как предлагали другие)function test(a) { var x = a.options[a.selectedIndex].value; alert(x); }
Чтобы получить
option
text
(т.е. общение или -Выбрать-)function test(a) { var x = a.options[a.selectedIndex].text; alert(x); }
ИЛИ (Новое предложение)
function test(a) { var x = a.options[a.selectedIndex].label; alert(x); }
HTML
<select onchange="test(this)" id="select_id"> <option value="0">-Select-</option> <option value="1">Communication</option> <option value="2" label=‘newText’>Communication</option> </select>
Также
источник
Это старый вопрос, но я не уверен, почему люди не предложили использовать объект события для получения информации вместо повторного поиска в DOM.
Просто пройдите через объект события в своей функции onChange, см. Пример ниже
function test() { console.log(event.srcElement.value); }
http://jsfiddle.net/Corsico/3yvh9wc6/5/
Может быть полезно для людей, которые ищут это сегодня, если бы это не было поведением по умолчанию 7 лет назад
источник
function test(){ var sel1 = document.getElementById("select_id"); var strUser1 = sel1.options[sel1.selectedIndex].value; console.log(strUser1); alert(strUser1); // Inorder to get the Test as value i.e "Communication" var sel2 = document.getElementById("select_id"); var strUser2 = sel2.options[sel2.selectedIndex].text; console.log(strUser2); alert(strUser2); }
<select onchange="test()" id="select_id"> <option value="0">-Select-</option> <option value="1">Communication</option> </select>
источник
function test(){ var sel1 = document.getElementById("select_id"); var strUser1 = sel1.options[sel1.selectedIndex].value; console.log(strUser1); alert(strUser1); // Inorder to get the Test as value i.e "Communication" var sel2 = document.getElementById("select_id"); var strUser2 = sel2.options[sel2.selectedIndex].text; console.log(strUser2); alert(strUser2); }
<select onchange="test()" id="select_id"> <option value="0">-Select-</option> <option value="1">Communication</option> </select>
var e = document.getElementById("ddlViewBy"); var strUser = e.options[e.selectedIndex].value;
источник
Я попытался объяснить это на собственном примере, но надеюсь, что это поможет вам. Вам не нужно onchange = "test ()" Пожалуйста, запустите фрагмент кода для получения реального результата.
document.getElementById("cars").addEventListener("change", displayCar); function displayCar() { var selected_value = document.getElementById("cars").value; alert(selected_value); }
<select id="cars"> <option value="bmw">BMW</option> <option value="mercedes">Mercedes</option> <option value="volkswagen">Volkswagen</option> <option value="audi">Audi</option> </select>
источник
edited 7 hours ago
По крайней мере, вы исправили код, который не работал.