我有一个搜索框和几个复选框。选中后,复选框中的值将被推送到搜索框中。
现在我想对每个被推入搜索框的字符串使用Bootstrap Tags Input来看起来像一个标签,但我在标题中收到错误消息。
我使用标签输入错误了吗?
$(document).ready(function () {
$checks = $(":checkbox");
$checks.on('change', function () {
var ingredient = $checks.filter(":checked").map(function (i, v) {
return this.id;
}).get().join(" ");
$('#SearchString').tagsinput(ingredient);
}).trigger('change');
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.min.js"></script>
<input class="form-control" id="SearchString" data-role="tagsinput" name="SearchString" type="text" value="">
&#13;
答案 0 :(得分:1)
以下是您修改过的代码段:
$(document).ready(function () {
$checks = $(":checkbox");
$checks.on('change', function () {
$('#SearchString').tagsinput('removeAll');
$checks.filter(":checked").each(function( index ) {
$('#SearchString').tagsinput('add', this.value);
});
}).trigger('change');
});
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.min.js"></script>
<input class="form-control" id="SearchString" data-role="tagsinput" name="SearchString" type="text" value="">
<div class="checkbox">
<label><input id="chk1" type="checkbox" value="ingredient1">ingredient 1</label>
</div>
<div class="checkbox">
<label><input id="chk2" type="checkbox" value="ingredient2">ingredient 2</label>
</div>
<div class="checkbox disabled">
<label><input id="chk3" type="checkbox" value="ingredient3">ingredient 3</label>
</div>
&#13;
此处提供了使用对象而不是纯文本作为标记的改进版本:https://jsfiddle.net/beaver71/v44mnn31/16/
在此示例中,当删除tagsinput中的标记时,它在相关复选框中未被选中。