jquery select2标签获取默认值

时间:2015-09-25 09:07:43

标签: javascript jquery jquery-select2

如何从默认值中获取值,这意味着我希望仅由用户获取新值自定义插入。

现在我的默认值是“红色”,“绿色”,“蓝色”。 如果用户输入“黄色”,“黑色”。我只是希望通知新标记,因此我可以将数据库存储到下一轮用于下一个用户的预先填充。

我的select2版本是3.4.2

HTML:

<input id="tags" class="text-input form-control"  type="text" name="tags" size="24"  placeholder="tags" >

JS :(在文档中)

$(document).ready(function () {
    $("#tags").select2({
    tags: ["red", "green", "blue"],
    maximumInputLength: 10
    });
});

我使用的是旧版本的JQuery和旧版本的select2 小提琴链接: http://jsfiddle.net/jb4b2cnu/

怎么创造这个?

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,添加新标记(如果不存在)并通知database ,那么您可以在创建newTag上设置变量通过选项createTag,然后使用select2.select事件发送或通知您db新添加的tag。例如:

$("#tags").select2({
    tags: ["red", "green", "blue"],
    maximumInputLength: 10,
    createTag: function (tag) {
        return {
            id: tag.term,
            text: tag.term,
            isNew : true
        };
    }
}).on("select2:select", function(e) {
    if(e.params.data.isNew){
        alert('make db call here');            
        $(this).find('[value="'+e.params.data.id+'"]').replaceWith('<option selected value="'+e.params.data.id+'">'+e.params.data.text+'</option>');
    }
});

示例 DEMO

答案 1 :(得分:1)

在研究旧版本文档后,回答(Select2 with createSearchChoice uses newly created choice for keyboard entry even given a match, bug or am I missing something?)的帖子并结合Guruprasad Rao的想法。

这是我可以在旧版本中存档的内容。

var result = ["red", "green", "blue"];
var isNew = false;
var varNew = [];
i = 0;
$("#tags").select2({
    tags: result,
    maximumInputLength: 10,
    createSearchChoice:function(term, data) {  
       if(result.some(function(r) { return r.text == term })) {
            return { id: term, text: term };
        }
        else {
            isNew = true;
            varNew[i++] = term;
            return { id: term, text: term + " (new)" };
        } 
     },
});