【问题标题】:jQuery select2 get value of select tag?jQuery select2 获取选择标签的值?
【发布时间】:2013-11-23 08:50:00
【问题描述】:

朋友们好,这是我的代码:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

这是我的 select2 代码:

$("#first").select2();

以下是获取选定值的代码。

$("#first").select2('val'); // It returns first,second,three.

这是返回一个类似first,second,three 的文本,我想得到1,2,3
意味着我需要选择框的值,而不是文本。

【问题讨论】:

  • 你能提供一个 JSFiddle 吗?这将非常有用。
  • 问题不清楚。你到底想要什么?

标签: jquery jquery-select2


【解决方案1】:
$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

【讨论】:

  • $("#first").val(); //它返回 1,2,3 或 $("#first").select2('val'); // 它返回第一个,第二个,三个
  • $("#first").val();将返回 1,2,3(曾经被选中),您能否在函数 select2() 中发布代码以获取更多详细信息。
  • 对于通过 id 名称而不是类名调用的选择,使用:$(".first").val()
  • @RuiMartins 错了。 ID 用“#”调用,类用“.”调用,所以要通过 ID 调用,您将使用 $("#first").val(),对于 CLASS,您将使用 $(".first" ).val()
【解决方案2】:

要获取 Select 元素,您可以使用 $('#first').val();

获取所选值的文本 - $('#first :selected').text();

能否请您发布您的select2()功能代码

【讨论】:

  • $("#first").val(); //它返回 1,2,3 或 $("#first").select2('val'); // 它返回第一个,第二个,三个
  • 我不确定,我确实明白你的问题。
  • 当我使用 select2 插件时,我使用 $("#first").val() 获得了价值。它不会返回任何内容,而是返回空白。
  • 你能提供你的插件的小提琴例子吗?
  • 我不得不使用$('#first :selected').text(); 另一个选项是返回所有可能的选项。
【解决方案3】:

$("#first").select2('data') 会将所有数据作为地图返回

【讨论】:

【解决方案4】:

如果您使用的是 ajax,您可能希望在选择后立即获得选择的更新值

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

致谢:史蒂文-约翰斯顿

【讨论】:

  • 嗨,我可以知道currentTarget 来自哪里吗?您的 ID/姓名示例均与问题无关。所以我无法与任何地方联系。
  • 非常感谢我的主 :p 快乐编码
【解决方案5】:

此解决方案允许您忘记选择元素。当您在选择元素上没有 id 时很有帮助。

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

【讨论】:

    【解决方案6】:

    简单的答案是:

    $('#first').select2().val()
    

    你也可以这样写:

     $('#first').val()
    

    【讨论】:

      【解决方案7】:

      试试这个:

      $('#input_id :selected').val(); //for getting value from selected option
      $('#input_id :selected').text(); //for getting text from selected option
      

      【讨论】:

      • @RenishKhunt 这里的答案不仅适合您(提出问题的人),也适合其他看到此页面的人。在这里提交的不同解决方案越多,其他人就有更好的选择,再说一遍:不仅仅是你:)
      • 是的,对不起。谢谢@infografnet,非常感谢 Fahmi Imanudin 发布答案:)
      【解决方案8】:

      以上解决方案不适用于我最新的 select2 (4.0.13)

      使用 jQuery,您可以使用此解决方案根据文档检索值:https://select2.org/programmatic-control/retrieving-selections

      $('#first').find(':selected').val();
      

      【讨论】:

        【解决方案9】:
        $(".element").select2(/*Your code*/)
        .on('change', function (e) {
             var getID = $(this).select2('data');
             alert(getID[0]['id']); // That's the selected ID :)
        });
        

        【讨论】:

        • 虽然您的回答可能会解决问题,但 including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。您可以编辑您的答案以添加解释并指出适用的限制和假设。 - From Review
        【解决方案10】:

        this fiddle
        基本上,您想获得option-tags 的values,但您总是尝试使用$("#first").val() 获得select-node 的值。

        所以我们必须选择选项标签,我们将使用 jQuerys 选择器:

        $("#first option").each(function() {
            console.log($(this).val());
        });
        

        $("#first option") 选择每个 option,它是 ID 为 first 的元素的子元素。

        【讨论】:

        • $("#first").val(); //它返回 1,2,3 或 $("#first").select2('val'); // 它返回第一个,第二个,三个
        • 好像我把你的问题弄错了,那么请明确你想要达到的目标。
        • 当我使用 select2 插件时,我使用 $("#first").val() 获得了价值。它不会返回任何内容,而是返回空白。
        • this fiddle。对我来说效果很好。 (我在外部资源下添加了 select2.js,虽然我不知道为什么这些框看起来很丑)。
        • 关键是你说我们要获取option标签的值!
        【解决方案11】:

        其他答案对我不起作用,所以我开发了解决方案:

        我使用 class="option-item" 创建了选项以便于定位

        HTML:

        <select id="select-test">
        <option value="5-val" id="first-id" class="option-item"> First option </option>
        </select>
        

        然后对于每个选定的选项,我添加了 display none 属性

        CSS:

        option:checked {
           display: none;
        }
        

        现在我们可以添加 change 到我们的 SelectBox 以通过简单的 :hidden 属性找到我们选择的具有无显示属性的选项

        jQuery:

        $('#select-test').change(function(){
        //value 
            $('#select-test').find('.option-item:hidden').val();
        //id
            $('#select-test').find('.option-item:hidden').attr('id');
        //text
            $('#select-test').find('.option-item:hidden').text();
        });
        

        工作小提琴:https://jsfiddle.net/Friiz/2dk4003j/10/

        【讨论】:

          【解决方案12】:

          解决方案:

          var my_veriable = $('#your_select2_id').select2().val();
          var my_last_veriable = my_veriable.toString();
          

          【讨论】:

            猜你喜欢
            • 2013-07-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-05
            • 2014-03-07
            相关资源
            最近更新 更多