Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Jquery 使用AJAX在插入后在Select2中设置数据_Jquery_Ajax_Jquery Select2 - Fatal编程技术网

Jquery 使用AJAX在插入后在Select2中设置数据

Jquery 使用AJAX在插入后在Select2中设置数据,jquery,ajax,jquery-select2,Jquery,Ajax,Jquery Select2,我将Select2与AJAX一起使用(代码如下): 那么,如果找不到客户端,用户可以使用一个按钮打开一个模式并添加新客户端,是否可以使用新客户端的返回(带有id和namae的json)并将数据(如名称)放入select2中 $('.btn-form-client').click(function() { $.ajax({ url: $('#frm-client').attr('action'), dataType: 'json',

我将Select2与AJAX一起使用(代码如下):

那么,如果找不到客户端,用户可以使用一个按钮打开一个模式并添加新客户端,是否可以使用新客户端的返回(带有id和namae的json)并将数据(如名称)放入select2中

$('.btn-form-client').click(function() {
        $.ajax({
            url: $('#frm-client').attr('action'),
            dataType: 'json',
            type: 'post',
            data: $('#frm-client').serialize()
        }).done(function (data) {
            $('#modal-client').modal('hide')
        });
        return false;
    });

我设法做到了。在jQuery中发布后,我得到一个包含新数据的JSON,并设置隐藏输入和select('.select2 ajax')


从v4.x开始,选择2不再使用隐藏的
input
字段。而是将其添加到
select
元素中:

var newOption = new Option(data.name, data.id, true, true);
$(".select2-ajax").append(newOption).trigger('change');
true
参数和
trigger('change')
的组合将确保添加新的
后自动选择


有关完整的工作示例,请参见my。

您能做到这一点吗?如果您想添加带有空格的选项,则需要固定jquery查找,以便用单引号将选项值括起来:
If($(“#state”).find(“option[value=”+newStateVal+“]”)。length){
@alexw,那么多个选定的项目呢?请检查此jsfiddle:@chiragsatapara您可以将一个值数组传递给
.val
,但您需要在初始化Select2后执行所有这些操作。如果您在上打开问题,我可以对此进行记录。
$('#client=id').val(data.id);
$('#modal-solicitante').modal('hide'); //This is my
$(".select2-ajax").select2('data', {id: data.id, name: data.name, email: data.email});
var newOption = new Option(data.name, data.id, true, true);
$(".select2-ajax").append(newOption).trigger('change');