jquery select2 标签获取默认值
jquery select2 tag get value out of default
如何从默认值中获取值,这意味着我只想获取用户自定义插入的新值。
例如,现在我的默认值为 "red"、"green"、"blue"。
如果用户输入 "yellow"、"black"。我只想通知 新标签 ,这样我就可以存储在数据库中,以便为下一个用户预填充下一轮。
我的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
Fiddle Link:
http://jsfiddle.net/jb4b2cnu/
如何创建这个?
如果我正确理解了你的问题,即 添加新标签(如果它不存在)并通知 database
那么你可以在 [=] 上设置一个变量21=]通过选项 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
我研究了一个旧版本文档后,从(Select2 with createSearchChoice uses newly created choice for keyboard entry even given a match, bug or am I missing something?)回答post并结合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)" };
}
},
});
如何从默认值中获取值,这意味着我只想获取用户自定义插入的新值。
例如,现在我的默认值为 "red"、"green"、"blue"。 如果用户输入 "yellow"、"black"。我只想通知 新标签 ,这样我就可以存储在数据库中,以便为下一个用户预填充下一轮。
我的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 Fiddle Link: http://jsfiddle.net/jb4b2cnu/
如何创建这个?
如果我正确理解了你的问题,即 添加新标签(如果它不存在)并通知 database
那么你可以在 [=] 上设置一个变量21=]通过选项 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
我研究了一个旧版本文档后,从(Select2 with createSearchChoice uses newly created choice for keyboard entry even given a match, bug or am I missing something?)回答post并结合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)" };
}
},
});