Jquery - 如何从标签中获取输入值

4
如果我有一堆标签/选择框,例如:
<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。我是否错过了什么?谢谢!

你已经对选择有任何选项了吗? - James
获取值的输入字段在哪里? - Sudhir Bastakoti
1
这里有一个你想要的 JSFiddle:http://jsfiddle.net/zRjPW/如果它没有达到预期的行为,请编辑并告诉我们你想要什么。 - Baz1nga
是的,这就是我拥有的,并且在fiddle中可以工作。我需要检查为什么它在我的实际示例中无法工作。 - user973479
5个回答

4

如果您为 labelselectselect 中的选项提供了闭合标签,那么一切都很好。请检查代码,我已经进行了修改和实现。 http://jsfiddle.net/XaMg9/5/


1

不确定你是否在寻找类似这样的东西 测试


1

对于多选:

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


1
在我的使用场景中,我正在使用mdc(Material Design)并希望在先前操作中勾选和取消勾选后重新打开复选框时取消勾选。
var checkbox = document.querySelector("#checkbox-"+ $(this).val()+ "-label")

var inputId = checkbox.htmlFor (该段代码为JavaScript代码,作用是获取复选框的关联输入框的ID)
var input = document.getElementById(inputId)
input.checked = false;

1

有一点需要注意。您可以使用选择器$('label.myClass')而不是$('label[class="myClass"]')。这只是更标准的写法。话虽如此,如果您想要获取包含在label中的每个select的值,请按照以下方式操作。

$('label.myClass select').each(function(){
    var inputVal = $(this).val();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接