$(function() {
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
$( "#names" ).autocomplete({
source: function(request, response) {
$.ajax({ url: "<?php echo site_url('update/suggestions'); ?>",
data: { term: extractLast( request.term )},
dataType: "json",
type: "POST",
success: function(data){
response(data);
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( "," );
return false;
}
});
},
minLength: 2
});
});
以上代码正在替换现有选择,而不是将新选择添加到现有选择中。这是在Codeigniter中。单个自动填充功能正常。 这不适用于将多个值添加到单个输入字段的多个输入字段。
答案 0 :(得分:1)
您的代码有几个问题:
$.ajax
功能和source
选项功能。minLength: 2
也放错了地方。例如你有:
source: function(request, response) {
$.ajax({ url: "<?php echo site_url('update/suggestions'); ?>",
...
success: function(data){
response(data);
},
// missing closings
focus: function() {
应该是:
source: function(request, response) {
$.ajax({
url: "<?php echo site_url('update/suggestions'); ?>",
...
success: function(data) {
response(data);
}
}); // closes $.ajax function
}, // closes the 'source' function
focus: function() {
使用正确的语法检查此 DEMO 。它工作正常(我已经为ajax添加了一个错误处理程序来显示一些静态结果)。
答案 1 :(得分:0)
对于多个自动补充,您如何获得ID“#names”? 您是否为所有自动填充输入字段指定了相同的ID。
尝试为所有自动填充输入字段提供一个公共类,然后调用如下
$( ".autoclass" ).autocomplete({