【问题标题】:set select2 option using text not value使用文本而不是值设置 select2 选项
【发布时间】:2015-10-01 05:54:44
【问题描述】:

我知道如果我有一个 select2 并且我想设置其中一个选项,我可以运行此代码。

 $(document).ready(function(){
     $('#btn').change(function(){
       $('#select').val(4).trigger("change")
     });    
 });

假设我想获取选项的文本

<option value=4>California</option>

但是如果我想根据文本而不是值来设置它,我该怎么做?

我试过了

$("#select").select2(data.text(), "California");

但它没有工作。

如何在 jquery 或 javascript 中以编程方式执行此操作。

感谢任何帮助

【问题讨论】:

    标签: jquery-select2


    【解决方案1】:

    例如:如果您需要在其他国家/地区中查找澳大利亚

    let long_name = 'Australia';
    let $element = $('.country-js')
    let val = $element.find("option:contains('"+long_name+"')").val()
    $element.val(val).trigger('change.select2');
    

    其他答案对我不起作用,可能是因为我使用了较新版本的 select2

    【讨论】:

    • 救了我的命。在过去的 2 个小时里,我一直在寻找解决方案,选择尝试一切,然后终于明白我要搜索 select2 选项第一个答案 BAM!为我解决了。非常感谢!
    • @CesarBielich 如果它对你有用,你为什么不投票呢?
    【解决方案2】:

    除了多选之外,请使用此选项,以免丢失已选择的值

    var selected=$("#foo option:selected").map(function(){ return this.value }).get();
    selected.push( $("#foo option:contains('text')").val() );
    $("#foo").val(selected).trigger('change');
    

    【讨论】:

      【解决方案3】:

      除了 Shakeel Ahmed 的回答,您应该致电 .trigger('change'),所以总的来说是这样的:

      $("#select").select2("val", $("#select option:contains('Text')").val()).trigger('change');
      

      【讨论】:

        【解决方案4】:

        您可以使用以下代码

        $("#select").select2("val", $("#select option:contains('Text')").val() );
        

        如果将使用您的 Text

        选择选项

        【讨论】:

        • 使用加利福尼亚而不是文本
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 2018-07-07
        • 2017-06-14
        • 1970-01-01
        • 2016-10-29
        相关资源
        最近更新 更多