Jquery - Как получить входное значение из метки - PullRequest
3 голосов
/ 08 декабря 2011

Если у меня есть куча меток / выбирает как:

<label for="blah" class="myClass">
<select id="blah" multiple="multiple" size="5">

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

Пока у меня есть ..

    $('label[class="myClass"]').each(function(){
        var labelTxt = $(this).text();
        var labelForTxt = $(this).attr('for');
        var inputVal = $('#'+labelForTxt).val();
    });

но inputVal - это не то значение, которое я ожидаю увидеть. Вместо этого я получаю либо null / undefined. Я что-то упустил?

Спасибо!

Ответы [ 5 ]

3 голосов
/ 08 декабря 2011

все хорошо, если у вас есть закрывающий тег для label и select и опции в select. Проверьте код, я изменил и реализовал. http://jsfiddle.net/XaMg9/5/

1 голос
/ 01 августа 2018

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

var checkbox = document.querySelector("#checkbox-"+ $(this).val()+ "-label")

var inputId = checkbox.htmlFor

var input = document.getElementById(inputId)
input.checked = false;
1 голос
/ 08 декабря 2011

Для множественного выбора:

$("label.myClass select").change(function () {
          var inputval = "";
          $("select option:selected").each(function () {
                inputval += $(this).val() + " ";
              });
          $("div[id='content']").text(inputval);
        });
&ltdiv id='content'>&lt/div>

1 голос
/ 08 декабря 2011

На что стоит обратить внимание.Вы можете использовать селектор $('label.myClass') вместо $('label[class="myClass"]').Это просто более стандартно.Тем не менее, если вы хотите, чтобы значение каждого select содержалось в label, сделайте это.

$('label.myClass select').each(function(){
    var inputVal = $(this).val();
});
1 голос
/ 08 декабря 2011

Не уверен, если вы ищете что-то вроде этого ТЕСТ

...