Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式选择AJAX上的选项2_Javascript_Jquery_Ajax_Select2 - Fatal编程技术网

Javascript 以编程方式选择AJAX上的选项2

Javascript 以编程方式选择AJAX上的选项2,javascript,jquery,ajax,select2,Javascript,Jquery,Ajax,Select2,Im使用Select2 jQuery插件v4.0.3为Im正在处理的项目。select2实例源于ajax,我想知道是否有一种方法可以通过编程方式选择选项 我以前可以通过以下方式设置值: $'input-field'.val['123','456'].触发'change' 当它不是ajax源代码时。现在我需要使用一个来自ajax的Select2实例来实现这一点 我创建了一个实例,只是为了让你明白我的意思。单击“设置值”应在select2实例中选择2个值 谢谢 另外,我甚至尝试将tags选项设置为t

Im使用Select2 jQuery插件v4.0.3为Im正在处理的项目。select2实例源于ajax,我想知道是否有一种方法可以通过编程方式选择选项

我以前可以通过以下方式设置值:

$'input-field'.val['123','456'].触发'change' 当它不是ajax源代码时。现在我需要使用一个来自ajax的Select2实例来实现这一点

我创建了一个实例,只是为了让你明白我的意思。单击“设置值”应在select2实例中选择2个值

谢谢


另外,我甚至尝试将tags选项设置为true,这样即使任何值不是AJAX查询的结果,也可以选择它,但它仍然不起作用

您似乎无法以编程方式选择以前未从下拉列表中搜索和选择的值

Select2在使用AJAX数据时,通过在发现之前未知的选项时将其添加到基础select元素中来工作。val正在尝试添加所需的项目,但只能添加已存在的项目,其余项目将被忽略。选择2然后获取更改事件并相应地调整渲染

这至少会给您带来一个有用的方向:

$('#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,以与初始化控件相同的方式操作控件。但是,我找不到一个这种形式的命令可以满足您在这种情况下的需要。

看起来您的ajax调用没有得到正确的值,但是当清除select2框并单击set values链接时,一切都正常。我昨晚再次处理这个问题时得出了相同的结论。我在上面发现了一个GIT问题。我认为这是一种类似的东西,我只是希望Select2插件足够酷,能够对传递给$.val调用的值发出AJAX请求,但这同样有效。谢谢