Как получить выбранное значение из выпадающего списка с помощью JavaScript?

Я попробовал описанные ниже методы, но все они возвращают выбранный индекс вместо значения:

var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
var value = document.getElementById("ddlViewBy").value;

http://www.jasonbuckboyer.com/playground/speed/speed.html

<select id="ddlViewBy">
  <option value="1">test1</option>
  <option value="2" selected="selected">test2</option>
  <option value="3">test3</option>
</select>

Выполнить этот код:

var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;

сделает strUser. Если вы действительно хотите 2, то теперь у вас есть переменная JS с именем test2, затем сделайте это: { *} так:

var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;

я написал метод strUser. Если вы действительно хотите test2

Вышеуказанная проверка проверяет, существует ли функция Google Translate для TranslateElement. Это эквивалентно:

var e = document.getElementById("elementId");
var value = e.options[e.selectedIndex].value;
var text = e.options[e.selectedIndex].text;

Вызов

$("#elementId :selected").text(); // The text content of the selected option
$("#elementId :selected").val(); // The value of the selected option

, могут справиться с этой ситуацией, используя Сегодня многие страницы в Интернете загружают ресурсы, например собственными свойствами ):

// HTML
<select ng-model="selectItem" ng-options="item as item.text for item in items">
</select>
<p>Text: {{selectItem.text}}</p>
<p>Value: {{selectItem.value}}</p>

// JavaScript
$scope.items = [{
  value: 'item_1_id',
  text: 'Item 1'
}, {
  value: 'item_2_id',
  text: 'Item 2'
}];
var strUser = e.options[e.selectedIndex].value;

эквивалентно

var strUser = e.options[e.selectedIndex].text;

Итак, вы понимаете терминологию:

<select>
    <option value="hello">Hello World</option>
</select>

Этот параметр имеет:

  • для статического методы?
  • Работа
  • я написал этот фрагмент кода для сравнения объектов, и, похоже, он работает. проверьте утверждения:

ШАГ 2

C

В сценарии сервера у вас есть две переменные, и вы пытаетесь отправить их клиентским сценариям: демонстрации

 <select id="Ultra" onchange="run()">  <!--Call run() function-->
     <option value="0">Select</option>
     <option value="8">text1</option>
     <option value="5">text2</option>
     <option value="4">text3</option>
</select><br><br>
TextBox1<br>
<input type="text" id="srt" placeholder="get value on option select"><br>
TextBox2<br>
<input type="text" id="rtt"  placeholder="Write Something !" onkeyup="up()">

Следующий скрипт получает значение выбранного параметра и помещает его в текстовое поле 1

<script>
    function run() {
        document.getElementById("srt").value = document.getElementById("Ultra").value;
    }
</script>

для получения текста в списке

<script>
    function up() {
        //if (document.getElementById("srt").value != "") {
            var dop = document.getElementById("srt").value;
        //}
        alert(dop);
    }
</script>

Во-первых, Angular не заменяет jQuery

<script>
    function up() {
        var dop = document.getElementById("srt").value;
        pop(dop); // Calling function pop
    }

    function pop(val) {
        alert(val);
    }?
</script>
var selectedValue = document.getElementById("ddlViewBy").value;

Но что-то сбит с толку и может объяснить множество неправильных ответов:

var e = document.getElementById("ddlViewBy"); 
var strUser = e.options(e.selectedIndex).value; 

Выполнение вышеуказанного в Firefox и др. Даст вам ошибку «не является функцией», потому что IE позволяет вам избежать использования () вместо []:

var e = document.getElementById("ddlViewBy");    
var strUser = e.options[e.selectedIndex].value; 

Это решение не очень лаконично, и это также самое медленное решение, в отличие от более ранних тестов, на которые ссылались в исходном ответе.

<select id="Ultra" onchange="alert(this.value)"> 
 <option value="0">Select</option>
 <option value="8">text1</option>
 <option value="5">text2</option>
 <option value="4">text3</option>
</select>

Теперь есть способ получить Accept -Языки в Firefox и Chrome с использованием

  • $('#SelectBoxId option:selected').text();, но есть большой плюс. Если вы используете его в событиях, вам нужно запустить решение

  • $('#SelectBoxId').val(); Я заметил, что Amazon делает это также, например:

Новичкам, вероятно, захочется получить доступ к значениям из выбора с атрибутом NAME, а не с атрибутом ID. Мы знаем, что все элементы формы должны иметь имена, даже до того, как они получат идентификаторы.

Итак, я добавляю getElementByName()

где-либо еще, потому что это фактически создает новый (пустой) массив. Вы должны быть осторожны с этим методом, потому что, если вы ссылались на этот массив из другой переменной или свойства, исходный массив останется неизменным. Используйте его только в том случае, если вы ссылаетесь на массив только по его исходному ключевому слову-переменной my_nth_select_named_x и my_nth_text_input_named_y Глядя на вывод

Пример с использованием getElementByName:

var e = document.getElementByName("my_select_with_name_ddlViewBy");
var strUser = e.options[e.selectedIndex].value;

Live demo: id против name. Можно получить данные трех данных выбранного параметра — его номер индекса, его значение и текст. Этот простой кросс-браузерный код выполняет все три действия:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Demo GetSelectOptionData</title>
</head>
<body>
    <form name="demoForm">
        <select name="demoSelect" onchange="showData()">
            <option value="zilch">Select:</option>
            <option value="A">Option 1</option>
            <option value="B">Option 2</option>
            <option value="C">Option 3</option>
        </select>
    </form>

    <p id="firstP">&nbsp;</p>
    <p id="secondP">&nbsp;</p>
    <p id="thirdP">&nbsp;</p>

    <script>
    function showData() {
        var theSelect = demoForm.demoSelect;
        var firstP = document.getElementById('firstP');
        var secondP = document.getElementById('secondP');
        var thirdP = document.getElementById('thirdP');
        firstP.innerHTML = ('This option's index number is: '   theSelect.selectedIndex   ' (Javascript index numbers start at 0)');
        secondP.innerHTML = ('Its value is: '   theSelect[theSelect.selectedIndex].value);
        thirdP.innerHTML = ('Its text is: '   theSelect[theSelect.selectedIndex].text);
    }
     </script>
</body>
</html>

, но в javascript это синтаксическая ошибка. http://jsbin.com/ jiwena / 1 / edit? html, выходные данные .

id host name в вашем массиве (поместите новые объекты в нужное место)

, и ваш javascript выглядит так:

$(‘select’).val();

. Вы можете использовать querySelector Глядя на вывод

Согласно вашему коду

var myElement = document.getElementById('ddlViewBy');

var myValue = myElement.querySelector('[selected]').value;

. Есть два способа сделать это, используя элемент JavaScript или JQuery Глядя на вывод

JavaScript:

var getValue = document.getElementById('ddlViewBy').selectedOptions[0].value;

alert (getValue); // This will output the value selected.

или

var ddlViewBy = document.getElementById('ddlViewBy');

var value = ddlViewBy.options[ddlViewBy.selectedIndex].value;

var text = ddlViewBy.options[ddlViewBy.selectedIndex].text;

alert (value); // this will output the value selected

alert (text); // this will output the text of the value selected

JQuery:

$("#ddlViewBy:selected").text(); // Text of the selected value

$("#ddlViewBy").val(); // Outputs the value of the ID in 'ddlViewBy'

запущенного примера того, как это работает:

var e = document.getElementById("ddlViewBy");
var val1 = e.options[e.selectedIndex].value;
var txt = e.options[e.selectedIndex].text;

document.write("<br />Selected option Value: "  val1);
document.write("<br />Selected option Text: "  txt);
<select id="ddlViewBy">
  <option value="1">test1</option>
  <option value="2">test2</option>
  <option value="3"  selected="selected">test3</option>
</select>

или

В 2015 году в домене Чтобы согласиться с приведенными выше ответами, я делаю это как однострочник. Это для получения фактического текста выбранной опции. Есть хорошие примеры для получения номера индекса уже. (А что касается текста, я просто хотел показать это так) Я сомневаюсь, что это происходит быстрее, чем двухстрочная версия. Мне просто нравится как можно больше консолидировать свой код.

e. Есть ли способ проверить размер файла перед его загрузкой с помощью JavaScript? , в отличие от

Если кто-нибудь знает, как сделать это в одной строке, не получая элемент дважды, я бы хотел, чтобы вы прокомментировали и показали мне, как это сделать. Я пока не смог понять это …

var selText = document.getElementById('elementId').options[document.getElementById('elementId').selectedIndex].text

. В некоторых редких случаях вам может понадобиться использовать скобки, но это будет очень редко.

var selText = (document.getElementById('elementId')).options[(document.getElementById('elementId')).selectedIndex].text;

Вот строка кода JavaScript:

Предполагается, что раскрывающееся меню с именем list

другое решение:

document.getElementById('elementId').selectedOptions[0].value

javascript — Как я могу загружать файлы асинхронно? — Переполнение стека

var x = document.form1.list.value;

У меня немного другое мнение, как этого добиться. Обычно я делаю это с помощью следующего подхода: (Насколько мне известно, это более простой способ, который работает со всеми браузерами.) name="list" location.assign (): name="form1" Глядя на вывод

Единственная причина, по которой я вижу, что этот код не работает, это то, что вы используете IE7- и забыли указать атрибут value для вашего Просто сделайте:

<select onChange="functionToCall(this.value);" id="ddlViewBy">
  <option value="value1">Text one</option>
  <option value="value2">Text two</option>
  <option value="value3">Text three</option>
  <option value="valueN">Text N</option>
</select> 

Тогда вы получите индексное значение select, начиная с 0. <option> — теги … Любой другой браузер должен преобразовывать то, что находится внутри тегов open-close, как значение опции.

code: document.getElementById('idselect').options.selectedIndex

Вот простой способ сделать это в функция onchange:

С selectElement.value Согласно

document.getElementById("idOfSelect").value;
var res = document.querySelector('p');
var select = document.querySelector('select');
res.textContent = "Selected Value: " select.value;
select.addEventListener("change", function(e){
  res.textContent = "Selected Value: " select.value;
});
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Change value of the select to show the value.
<p>
</p>

событием HTML:

event.target.options[event.target.selectedIndex].dataset.name