我使用这段代码来应用保存在数据库中的上一页所做选择的标记。
它会创建标签,但不会将文本放入其中,只需放入X即可将其删除。 selected是一系列可能的位置。
即["work", "home", "away", "Hong Kong", "Manchester".......]
var selected = this.location
var $element = $("#location").select2();
for (var d = 0; d < selected.length; d++) {
var item = selected[d];
var option = new Option(item.text, item.id, true, true)
$element.append(option);
}
任何帮助都会受到赞赏,因为这里的所有select2问题似乎主要是处理静态数据,或者是为了我当前的知识水平而提升。
根据要求,
这就是所有代码明智的代码。我只想要标签中的文字
目前看起来像http://prntscr.com/a1h2nu 我需要它看起来像http://prntscr.com/a1h33w
这是HTML
<div class="form-group">
<label for="location" class="col-lg-3 control-label">Location</label>
<div class="col-lg-8">
<select class="form-control" id="location" multiple="multiple" style="width: 100%">
</select>
<span class="help-block"></span>
</div>
</div>
var item = selected[d];
console.log(item);
var option = new Option(item.text, item.id, true, true)
console.log(option);
$element.append(option);
这是dev工具输出 http://prntscr.com/a1hdf7
答案 0 :(得分:0)
EDIT 可以找到更新的jsFiddle here。主要问题是你错过了正确的选择器。
为了让Select2考虑您的更改,您需要触发更改,以便重新评估控件。
你可以看到现场小提琴here
在
中$(".js-programmatic-set-val").on("click", function () { $example.val("CA").trigger("change"); });
参考Select2文档Programmatic Access
答案 1 :(得分:0)
这是一个简单的修复 从这......
var item = selected[d];
console.log(item);
var option = new Option(item.text, item.id, true, true)
console.log(option);
$element.append(option);
对此...
var item = selected[d];
console.log(item);
var option = new Option(item, item.id, true, true)
console.log(option);
$element.append(option);