我正在尝试将 Select2 插件与 CodeIgniter 框架结合使用。经过一番努力,我设法让它与 AJAX 数据一起工作。但是,现在它有一个奇怪的问题。即使在输入全名后,插件也不会消除与搜索词不匹配的不相关选项。
下面的屏幕截图描述了这一点。
http://i.imgur.com/MfLcuf6.jpg?1
Firebug 控制台如下所示:
http://i.imgur.com/Qvko6mX.jpg
下面是我的 Javascript 代码以及我的控制器的代码
Javascript:
$("#mentor-typeahead").select2({
width: "100%",
placeholder: "Enter a mentor name",
maximumSelectionSize: 5,
minimumInputLength: 2,
multiple: true,
ajax: {
url: 'get_mentor_multi_list',
quietMillis: 500,
cache: true,
dataType: 'json',
results: function (data) {
return { results: data };
}
}
});
控制器
function get_mentor_multi_list($query = null)
{
$answer = array(array('id'=>1, 'text'=>'Inigo Montoya'),
array('id'=>2, 'text'=>'Zoey Deschanel'),
array('id'=>3, 'text'=>'Harry Potter'),
array('id'=>4, 'text'=>'Nicole Scherzinger'),
array('id'=>5, 'text'=>'Xerxes Mistry'),
array('id'=>6, 'text'=>'Tom Marvollo Riddle'),
array('id'=>7, 'text'=>'Light Yagami'),
array('id'=>8, 'text'=>'Vic Mackey'),
array('id'=>9, 'text'=>'Clark Kent'));
echo json_encode($answer);
}
我对可能导致问题的原因感到非常困惑。我也尝试了此处列出的解决方案链接,但无济于事。任何帮助,将不胜感激。
根据请求更改了 AJAX 调用参数,但输出保持不变......
$("#mentor-typeahead").select2({
width: "100%",
placeholder: "Enter a mentor name",
maximumSelectionSize: 5,
minimumInputLength: 2,
multiple: true,
ajax: {
url: 'get_mentor_multi_list',
quietMillis: 200,
dataType: 'json',
data: function (term, page) {
return {
q: term,
page_limit: 10
};
},
results: function (data, page) {
return data;
}
}