Select2 - 禁用用户输入选择
Select2 - disable the user input choice
我正在尝试在 select2 select...
中设置来自 ajax 的数据
但问题是,如果我写的东西不在我的数据中,我可以 select 这个选择!
这将取这个值"I don't exist" ... formatNoMatches() 函数似乎没有被调用...
JS :
$(".select2-ajax").select2({
ajax: {
url: "ajax.call.php",
type:'POST',
dataType: 'json',
data: function (params) {
return {
nom: params.term, // search chars
page: params.page,
};
},
processResults: function (data, page) {
console.log(data.data);
if(typeof(data.data)=='undefined' || !data.data || data.data.length <= 0)
var res = [];
else
{
var res = [];
for (var i = data.data.length - 1; i >= 0; i--)
{
res.push({"text":data.data[i]["nom"]+' '+data.data[i]["prenom"],"id":data.data[i]["id_salarie"]});
};
}
return { results: res};
},
cache: true
},
formatNoMatches: function( term ) {
return "<li class='select2-no-results'>' "+term+" ': Aucun résultat</li>";
},
allowClear: true,
language: 'fr',
multiple: false,
看到THIS问题后,我尝试了以下两个:(但仍然不起作用)
selectOnBlur:false,
createSearchChoice: false,
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
});
只有当您return从您的服务器输入一个与用户输入的文本相匹配的选项时才会发生这种情况或您正在使用tags
选项。
由于您似乎没有使用 tags
,并且您的代码不包含它,您可以通过覆盖 createTag
(之前是 createSearchChoice
总是 return null
.
$('select').select2({
createTag: function () {
// Disable tagging
return null;
}
});
将标记设置为 false。示例:
$('select').select2({
标签: 假
});
我正在尝试在 select2 select...
中设置来自 ajax 的数据但问题是,如果我写的东西不在我的数据中,我可以 select 这个选择!
这将取这个值"I don't exist" ... formatNoMatches() 函数似乎没有被调用...
JS :
$(".select2-ajax").select2({
ajax: {
url: "ajax.call.php",
type:'POST',
dataType: 'json',
data: function (params) {
return {
nom: params.term, // search chars
page: params.page,
};
},
processResults: function (data, page) {
console.log(data.data);
if(typeof(data.data)=='undefined' || !data.data || data.data.length <= 0)
var res = [];
else
{
var res = [];
for (var i = data.data.length - 1; i >= 0; i--)
{
res.push({"text":data.data[i]["nom"]+' '+data.data[i]["prenom"],"id":data.data[i]["id_salarie"]});
};
}
return { results: res};
},
cache: true
},
formatNoMatches: function( term ) {
return "<li class='select2-no-results'>' "+term+" ': Aucun résultat</li>";
},
allowClear: true,
language: 'fr',
multiple: false,
看到THIS问题后,我尝试了以下两个:(但仍然不起作用)
selectOnBlur:false,
createSearchChoice: false,
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
});
只有当您return从您的服务器输入一个与用户输入的文本相匹配的选项时才会发生这种情况或您正在使用tags
选项。
由于您似乎没有使用 tags
,并且您的代码不包含它,您可以通过覆盖 createTag
(之前是 createSearchChoice
总是 return null
.
$('select').select2({
createTag: function () {
// Disable tagging
return null;
}
});
将标记设置为 false。示例:
$('select').select2({ 标签: 假 });