select2标签支持,如何禁止option成为标签?
select2 tags support, how to prohibit option to be a tag?
我使用 select2 和 ajax search.How 来设置一些无法选择的选项。
例如,如下图
我在输入里写了一个'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
}
})
};
}
}
});
我有一段时间没有尝试使用 select2,但我相信这是插件的预期行为。
这就是说,您应该能够找到具有 'w' 的元素的 id/class 并将其设置为 display: none;
,这在过去对我有用。
默认情况下,您可以创建新标签。
要禁用标记创建,请提供 createTag
选项。此选项是一个函数,指示给定标签是否允许。在您的情况下,您希望允许创建 no 标签,因此 return 为空,例如
$('#normalSymptom').select2({
tags: true,
multiple: true,
createTag: function (params) {
return null;
},
// etc.
});
试试这个
$('select').select2({tags:false});
从您的 html
中删除“多个”
<select multiple></select>
实际上,每当我们在 select 中写入 multiple 时,它都会成为 select 多于 1 个选项的标签。当你删除它时,它变得像单个 select 选项。希望对您有所帮助! :)
我使用 select2 和 ajax search.How 来设置一些无法选择的选项。
例如,如下图
我在输入里写了一个'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
}
})
};
}
}
});
我有一段时间没有尝试使用 select2,但我相信这是插件的预期行为。
这就是说,您应该能够找到具有 'w' 的元素的 id/class 并将其设置为 display: none;
,这在过去对我有用。
默认情况下,您可以创建新标签。
要禁用标记创建,请提供 createTag
选项。此选项是一个函数,指示给定标签是否允许。在您的情况下,您希望允许创建 no 标签,因此 return 为空,例如
$('#normalSymptom').select2({
tags: true,
multiple: true,
createTag: function (params) {
return null;
},
// etc.
});
试试这个
$('select').select2({tags:false});
从您的 html
中删除“多个”<select multiple></select>
实际上,每当我们在 select 中写入 multiple 时,它都会成为 select 多于 1 个选项的标签。当你删除它时,它变得像单个 select 选项。希望对您有所帮助! :)