使用text而不是value设置select2选项

时间:2015-10-01 05:54:44

标签: jquery-select2

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




  $(document)。 ready(function(){
 $('#btn')。change(function(){
 $('#select')。val(4).trigger(“change”)&#xA ;});
});
  




让我们说我想得到选项的文字

& #xA;

 < option value = 4> California< / option>
  




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





我尝试了




  $(“#select”)。select2(data.text( ),“加利福尼亚”);
  




但它没有用。





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





感谢任何帮助




4 个答案:

答案 0 :(得分:1)

除了Shakeel Ahmed的答案之外,你应该致电.trigger('change'),所以完全是这样的:

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

答案 1 :(得分:1)

此外,对于多选,请使用此选项,以便不丢失已选择的值

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

答案 2 :(得分: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

答案 3 :(得分:0)

您可以使用以下代码

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

如果将使用 文字

选择选项