Получить выбранный вариант из выбранного элемента - PullRequest
93 голосов
/ 04 марта 2010

Я пытаюсь получить выбранную опцию из выпадающего списка и заполнить другой элемент этим текстом, как показано ниже. IE порождает шторм и не работает в Firefox:

$('#ddlCodes').change(function() {
  $('#txtEntry2').text('#ddlCodes option:selected').text();
});

Что я делаю не так?

Ответы [ 12 ]

186 голосов
/ 04 марта 2010

Вот короткая версия:

$('#ddlCodes').change(function() {
  $('#txtEntry2').text($(this).find(":selected").text());
});

karim79 сделал хороший улов, судя по названию вашего элемента txtEntry2 может быть текстовым полем, если это какой-либо тип ввода, вам нужно будет использовать .val() или .text() как это:

  $('#txtEntry2').val($(this).find(":selected").text());

Для "что не так?" часть вопроса: .text() не принимает селектор, он принимает текст, который вы хотите установить, или ничего, чтобы вернуть текст, уже там. Поэтому вам нужно получить нужный текст, а затем поместить его в метод .text(string) на объект, который вы хотите установить, как у меня выше.

15 голосов
/ 04 марта 2010

Попробуйте это:

$('#ddlCodes').change(function() {
  var option = this.options[this.selectedIndex];
  $('#txtEntry2').text($(option).text());
});
8 голосов
/ 23 мая 2012

Вот более короткая версия, которая также должна работать:

 $('#ddlCodes').change(function() {
      $('#txtEntry2').text(this.val());
    });
4 голосов
/ 31 января 2013

с меньшим количеством jQuery:

<select name="ddlCodes"
 onchange="$('#txtEntry2').text(this.options[this.selectedIndex].value);">

this.options[this.selectedIndex].value - это простой JavaScript.

(Источник: Немецкий SelfHTML )

2 голосов
/ 26 марта 2013

Чтобы узнать количество выбранных элементов, используйте

$("select option:selected").length

Для получения значения всех выбранных элементов используйте

    var str = "";
  $("select option:selected").each(function () {
        str += $(this).text() + " ";
      });
2 голосов
/ 17 марта 2013

Попробуйте следующий код

$('#ddlCodes').change(function() {
  $('#txtEntry2').val(  $('#ddlCodes :selected').text() );
});
1 голос
/ 14 марта 2014

Используя свойство selectedOptions (HTML5), вы можете получить выбранные опции

document.getElementbyId("id").selectedOptions; 

С помощью JQuery этого можно достичь

$("#id")[0].selectedOptions; 

или

$("#id").prop("selectedOptions");

Свойство содержит массив HTMLCollection, аналогичный этому один выбранный вариант

[<option value=​"1">​ABC</option>]

или несколько вариантов выбора

[<option value=​"1">​ABC</option>, <option value=​"2">​DEF</option> ...]
1 голос
/ 08 ноября 2013

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

<select id="cycles_list">
    <option value="10">10</option>
    <option value="100">100</option>
    <option value="1000">1000</option>
    <option value="10000">10000</option>
</select>

Для захвата с помощью jQuery вы можете сделать что-то вроде этого:

$('#cycles_list').change(function() {
    var mylist = document.getElementById("cycles_list");
    iterations = mylist.options[mylist.selectedIndex].text;
});

Как только вы сохраните значение в своей переменной, следующим шагом будет отправка информации, хранящейся в переменной, в поле формы или HTML-элемент по вашему выбору. Это может быть div p или пользовательский элемент.

т.е. <p></p> OR <div></div>

Вы бы использовали:

$ ( 'р') HTML (итерации). ИЛИ $ ('div'). Html (итерации);

Если вы хотите заполнить текстовое поле, например:

<input type="text" name="textform" id="textform"></input>

Вы бы использовали:

$ ('# textform'). Text = итерации;

Конечно, вы можете делать все вышеперечисленное за меньшее количество шагов, я просто верю, что это помогает людям учиться, когда вы разбиваете все на простые для понимания шаги ... Надеюсь, это поможет!

1 голос
/ 21 февраля 2013

Это сработало для меня:

$("#SelectedCountryId_option_selected")[0].textContent
0 голосов
/ 19 апреля 2017

Учитывая этот HTML:

<select>
    <option value="0">One</option>
    <option value="1">Two</option>
</select>

Выберите по описанию для jQuery v1.6 +:

var text1 = 'Two';
$("select option").filter(function() {
    //may want to use $.trim in here
    return $(this).text() == text1; 
}).prop('selected', true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...