我使用select2和ajax搜索。如何设置一些选项无法选择。 例如,如下图所示
我写了一个' w'在输入中,但下拉列表中的第一行不是来自ajax搜索的数据。如何设置它无法选择或不能显示它?
html代码
<select id="normalSymptom" name="normalSymptom" class="form-control select2-multiple" multiple > </select>
javascript代码
$('#normalSymptom').select2({
tags: true,
multiple: true,
tokenSeparators: [','],
minimumInputLength: 1,
minimumResultsForSearch: 10,
ajax: {
url: "/DiseaseSearch/symptomSearch",
dataType: "json",
type: "GET",
data: function (params) {
var queryParameters = {
word: params.term
}
return queryParameters;
},
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
}
}
});
答案 0 :(得分:1)
默认情况下,您可以创建新标签。
要禁用标记创建,请提供createTag
选项。此选项是一个指示给定标记是否允许的函数。在您的情况下,您希望允许创建 no 标记,因此返回null,例如,
$('#normalSymptom').select2({
tags: true,
multiple: true,
createTag: function (params) {
return null;
},
// etc.
});
答案 1 :(得分:0)
我暂时没有使用select2,但我相信这是该插件的预期行为。
这就是说,你应该能够找到具有&#39; w&#39;的元素的id / class。并将其设置为display: none;
,这在过去对我有用。
答案 2 :(得分:0)
试试这个
$('select').select2({tags:false});
答案 3 :(得分:0)
从你的 html 中删除“multiple”
<select multiple></select>
实际上,每当我们在 select 中写入多个时,它就会成为选择多个选项的标签。当您删除它时,它变得像单选选项。我希望它有帮助! :)