Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 选择2在动态列表中插入一个空文本选项_Javascript_Jquery_Jquery Select2_X Editable_Ui Select2 - Fatal编程技术网

Javascript 选择2在动态列表中插入一个空文本选项

Javascript 选择2在动态列表中插入一个空文本选项,javascript,jquery,jquery-select2,x-editable,ui-select2,Javascript,Jquery,Jquery Select2,X Editable,Ui Select2,我在使用带Jquery editable的Select2时遇到了Select2的异常行为,我正在使用ejs模板显示可编辑的信息表,当用户单击CBA打开一个Select2框,其中包含最初选择的结果,然后用户可以在其中添加或删除选项,选项来自数据库源,当用户选择一个选项时,它会在数据库中添加一个空选项,其中包含所选选项,数组如下所示 [ABCD,ONAB,BCNU] 我在某个地方读到了allowClear:true并添加了一个占位符,但这对我一点帮助都没有。由于所有操作都是动态完成的,所以我找不到在

我在使用带Jquery editable的Select2时遇到了Select2的异常行为,我正在使用ejs模板显示可编辑的信息表,当用户单击CBA打开一个Select2框,其中包含最初选择的结果,然后用户可以在其中添加或删除选项,选项来自数据库源,当用户选择一个选项时,它会在数据库中添加一个空选项,其中包含所选选项,数组如下所示

[ABCD,ONAB,BCNU]

我在某个地方读到了allowClear:true并添加了一个占位符,但这对我一点帮助都没有。由于所有操作都是动态完成的,所以我找不到在哪里添加了空选项

代码如下:

Select 2的Ejs/HTML代码

从数据库返回代码的格式:-

显示自己添加的空框的图像

编辑后数组的外观


这只是一个简单的语法错误,我自己发现的

我将cba.value作为id返回,但initSelection正在返回

{id:v,text:v}

它应该是值和文本,而不是id和文本

       // what is shown in the selected-tags box
    initSelection: function(element, callback) {
        var id = $(element).val(),
            result = id.replace(/^,\s*$/, ',').split(",").map(function(v) {
                return {
                    value: v,
                    text: v
                };
            });
        callback(result);
    }
    $("a[data-name='Cba']").editable({
    showbuttons: 'false',
    emptytext: 'None',
    display: function(values) {
        var html = [];
        html.push(values);
        $(this).html(html);
    },
    select2: {
        multiple: true,
        allowClear: true,
        placeholder: "Select CBA(s)",
        ajax: {
            // url is copied from data-source via x-editable option-passing mechanism
            dataType: 'json',
            // pass the '?format=select2' parameter to API call for the select2-specific format
            data: function(term, page) {
                return {
                    deptId: departmentId,
                    format: 'select2'
                };
            },
            // transform returned results into the format used by select2
            results: function(data, page) {
                return {
                    results: data
                };
            }
        },
        // what is shown in the list
        formatResult: function(cba) {
            return cba.text;
        },
        // what will appear in the selected tag box
        formatSelection: function(cba) {
            return cba.text;
        },
        // rendering id of the values to data.value requirement for Select 2
        id: function(cba) {
            return cba.value;
        },
        // what is shown in the selected-tags box
        initSelection: function(element, callback) {
            var id = $(element).val(),
                result = id.replace(/^,\s*$/, ',').split(",").map(function(v) {
                    return {
                        id: v,
                        text: v
                    };
                });
            callback(result);
        }
    }
});
    Facility.findOne({ _id: department.Facility }, function(err, facility) {
    if (err) {
        res.send(500, err);
    } else if (!facility) {
        res.send(404, 'Facility not found');

    } else if (req.query.format && req.query.format === 'select2') {
        var result = facility.Cba.map(function(c) {
            return { value: c, text: c };
        });
        res.json(result);

    }
});
       // what is shown in the selected-tags box
    initSelection: function(element, callback) {
        var id = $(element).val(),
            result = id.replace(/^,\s*$/, ',').split(",").map(function(v) {
                return {
                    value: v,
                    text: v
                };
            });
        callback(result);
    }