jquery 在AJAX源Select2上编程选择选项

wnavrhmk  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(130)

我正在为一个项目使用Select2 jQuery插件(v4.0.3)。Select2示例是开源的,我想知道有没有一种方法可以通过编程选择选项。
我以前可以通过以下方式设置值:

$('#input-field').val(['123','456']).trigger('change')

字符串
当它是notaerosourced的时候。现在我需要让它与aerosourced的Select2示例一起工作。
我创建了一个**jsFiddle**示例,这样你就可以明白我的意思了。单击Set Values应该在select2示例中选择2个值。
谢谢你,谢谢

**P.S.**我甚至尝试将tags选项设置为true,这样任何值都可以被选中(即使它不是AJAX查询的结果),但它仍然不起作用

htzpubme

htzpubme1#

您似乎无法以编程方式选择以前未从搜索器中搜索和选择的内容。
当使用AJAX数据时,Select2似乎通过在发现之前未知的选项时将其添加到基础select元素来工作。.val()试图添加您想要的项目,但只有已经存在的项目可以添加,其余的被忽略。然后Select2获取change事件并相应地调整呈现。
这至少会给你一个有用的方向:

$('#set-selected').click(function(e){
  e.preventDefault();
  var $select = $('.js-data-example-ajax');
  var targets = ["28200583","3620194"];
  targets.forEach(function(v,i,a){
    if(!$('option[value='+v+']',$select).length) {
      $select.append('<option value="'+v+'">'+v+'</option>');
    }
  });
  $select.val(targets).trigger('change');
});

字符串
通常情况下,这些UI库的情况是,您可以使用与初始化控件相同的方式来操作控件,在本例中,通过调用.select2()来操作控件。

相关问题