Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择2-禁用用户输入选项_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 选择2-禁用用户输入选项

Javascript 选择2-禁用用户输入选项,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我正试图在select2 select中设置来自ajax的数据 但问题是,如果我写的东西不在我的数据中,我可以选择这个选项 这个值就是“我不存在”。。。似乎没有调用formatNoMatches()函数 JS: $(".select2-ajax").select2({ ajax: { url: "ajax.call.php", type:'POST', dataType: 'json', data: function (params) { return { nom: params.

我正试图在select2 select中设置来自ajax的数据

但问题是,如果我写的东西不在我的数据中,我可以选择这个选项

这个值就是“我不存在”。。。似乎没有调用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,

只有当您从服务器返回与用户输入的文本匹配的选项时,或者当您使用
标记时,才会发生这种情况

由于您似乎没有使用
标记
,并且您的代码没有包含它,因此可以通过覆盖
createTag
(以前的
createSearchChoice
始终返回
null
)来确保这不是问题所在

$('select').select2({
  createTag: function () {
    // Disable tagging
    return null;
  }
});

只有当您从服务器返回与用户输入的文本匹配的选项时,或者当您使用
标记时,才会发生这种情况

由于您似乎没有使用
标记
,并且您的代码没有包含它,因此可以通过覆盖
createTag
(以前的
createSearchChoice
始终返回
null
)来确保这不是问题所在

$('select').select2({
  createTag: function () {
    // Disable tagging
    return null;
  }
});

将标记设置为false。例如:

$('select')。选择2({ 标签:false
});

将标记设置为false。例如:

$('select')。选择2({ 标签:false
});

@Kevin Brown有没有办法完全禁用该选择框中的用户输入?@Kevin Brown有没有办法完全禁用该选择框中的用户输入?