2015-07-16 4 views
0

Я пытаюсь установить ДАННЫЕ из AJAX в выбор2 выбрать ...Выбор2 - отключить выбор пользовательского ввода

Но проблема в том, что если я пишу то, что не в моей DATAS я могу выбрать это выбор!

enter image description here

И это будет принимать это значение "Я не существует" ... The 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, 
}); 

ответ

1

Это должно произойти только в том случае, если вы возвращаете опцию с вашего сервера, которая соответствует введенному пользователю или, вы используете опцию tags.

Поскольку вы, кажется, не использовать tags, и ваш код не включает его, вы можете убедиться, что это не вопрос путем переопределения createTag (ранее createSearchChoice всегда возвращать null.

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

спасибо вам человек <3 – Seba99

0

Набор тегов к ложным Пример:

$ ('выберите') Select2 ({ теги: ложные });..

Смежные вопросы