【问题标题】:How to set select2 selected value using option text?如何使用选项文本设置 select2 选定值?
【发布时间】:2023-07-24 01:29:01
【问题描述】:

我正在使用带有交货日期日历的 select2,可用日期如下所示。

<select name="e_deliverydate" id="e_deliverydate" class="select select2-hidden-accessible" data-placeholder="Escolha uma data" tabindex="-1" aria-hidden="true">
   <option value="select">Select a delivery date</option>
   <option value="18-9-2021">sábado, 18 setembro, 2021</option>
   <option value="21-9-2021">terça-feira, 21 setembro, 2021</option>
   <option value="22-9-2021">quarta-feira, 22 setembro, 2021</option>
   <option value="23-9-2021">quinta-feira, 23 setembro, 2021</option>
   <option value="24-9-2021">sexta-feira, 24 setembro, 2021</option>
</select>

是否可以使用选项文本设置选定的选项? 我正在尝试这个:

let date_string = 'quarta-feira, 22 Setembro, 2021';

let val = $('#e_deliverydate').find("option:contains('"+date_string+"')").val();

$('#e_deliverydate').val(val).trigger('change.select2');

但是我要做的就是清空select2输入,我使用的是select2 4.0x,我该怎么办?

【问题讨论】:

  • 也许这可以帮助你:*.com/a/3744323/13604954
  • 它不适用于 select2.js :(
  • 也许用option:contains['"+date_string+"']替换option:contains('"+date_string+"')
  • 它只是返回一个语法错误,不是 [] 仅适用于数组吗?
  • 基于这个链接:select2.org/searching你需要自定义一个函数。

标签: javascript jquery-select2


【解决方案1】:

你的日期字符串

let date_string = 'quarta-feira, 22 Setembro, 2021';

你能试一下吗

let val = $("#e_deliverydate option").filter(function() { 

    return $(this).text().includes(date_string) 

}).val();

这个是触发器

$('#e_deliverydate').val(val).trigger('change');

【讨论】:

  • 成功了,谢谢!
  • 不客气 :))