以编程方式 select select2 个选项使用 jquery

programmatically select select2 options using jquery

我针对 select 列出的选项之一尝试了以下解决方案

<select data-placeholder="Company Name" class="select required form-control select2-hidden-accessible" name="company[company_name]" id="company_company_name" tabindex="-1" aria-hidden="true">
  <option value=""></option>
  <option value="ABC">ABC</option>
  <option value="XYZ Company">XYZ Company</option>
  <option value="PQR Company">PQR Company</option>
</select>

我试过:

// Not working
$('#company_company_name').select2('val', 'XYZ Company');
// => undefined

// Not Working
$('#company_company_name').select2('val', 'XYZ Company', true);
// => undefined

// Not Working
$('#company_company_name').select2('data', {id: 'XYZ Company');
// => undefined

// Not working
$('#company_company_name').select2('data', {id: 'XYZ Company', a_key: 'XYZ Company');
// => undefined

另请注意 下面的代码返回空数组:

$('#company_company_name').select2('data')
// => []

问题

如何使用 jquery select select2 个已存在的选项?

更新

我也尝试 select 值并触发更改,但是 select2 坏了,我可以看到简单的 select 字段

$('#company_company_name').val('XYZ Company').trigger('change');

What events does Select2 listen for?

Select2 将侦听它所附加的 上的更改事件。如果您进行任何需要反映在 Select2 中的外部更改(例如更改值),您应该触发此事件。

$('#company_company_name').val('XYZ Company'); 

然后

$('#company_company_name').trigger('change'); 

或者

$('#company_company_name').trigger('change.select2');