Jquery 自动完成结果显示为单个字母,而不是单词
Jquery auto complete results appear as individual letters, not words
我正在使用 jquery 捕获用户在文本字段中的输入,然后显示可能选项的下拉列表。
该脚本调用 php 页面进行搜索并将结果 return 发送到 ajax 请求。
如果 return 由 PHP 编辑了多个值,它们看起来像
["Site 4,"Site 2","Site 1","Site 6","Site 7","Site 0"]
单个值会显示为
["Site 4"]
我在下拉列表中得到的内容如下(基于单个条目)
[
LINE
"
S
i
t
e
LINE
4
"
]
其中 LINE 是 Site
和 4
之间的分隔符,并显示引号和括号。
我的Jquery是:
$('#site').autocomplete({
source: function( request, response ) {
$.ajax({
url : 'siteCheck.php?name=' + request.term,
success: function( data ) {
console.log (data)
response( $.map( data, function( item ) {
return {
label: item,
value: item,
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
$('#site').val(ui);
}
});
我如何将其添加到 return 下拉列表中
Site 4
Site 2
Site 1
Site 6
Site 7
Site 0
而不是单个字母!
谢谢
首先:您的 json 数组的第一个元素没有结束 "
是错字吗?
其次:根据自动完成文档,source
,只需将数组作为简单数组传递就足够了,就像您已经拥有的那样。无需将其转换为 label/value.
在 remote datasource 的例子中,他们只是添加 source: 'remoteScript.php'
所以你可以使用
$( '#site' ).autocomplete({
source: 'siteCheck.php?name=' + request.term,
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
$('#site').val(ui);
}
});
编辑:
尝试修改您的服务器端脚本以接受 term
作为 GET 参数,然后您的 URL 可以删除该部分,添加术语,因为自动完成会为您完成:
source: 'siteCheck.php', //should accept term as parameter
我正在使用 jquery 捕获用户在文本字段中的输入,然后显示可能选项的下拉列表。
该脚本调用 php 页面进行搜索并将结果 return 发送到 ajax 请求。
如果 return 由 PHP 编辑了多个值,它们看起来像
["Site 4,"Site 2","Site 1","Site 6","Site 7","Site 0"]
单个值会显示为
["Site 4"]
我在下拉列表中得到的内容如下(基于单个条目)
[
LINE
"
S
i
t
e
LINE
4
"
]
其中 LINE 是 Site
和 4
之间的分隔符,并显示引号和括号。
我的Jquery是:
$('#site').autocomplete({
source: function( request, response ) {
$.ajax({
url : 'siteCheck.php?name=' + request.term,
success: function( data ) {
console.log (data)
response( $.map( data, function( item ) {
return {
label: item,
value: item,
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
$('#site').val(ui);
}
});
我如何将其添加到 return 下拉列表中
Site 4
Site 2
Site 1
Site 6
Site 7
Site 0
而不是单个字母!
谢谢
首先:您的 json 数组的第一个元素没有结束 "
是错字吗?
其次:根据自动完成文档,source
,只需将数组作为简单数组传递就足够了,就像您已经拥有的那样。无需将其转换为 label/value.
在 remote datasource 的例子中,他们只是添加 source: 'remoteScript.php'
所以你可以使用
$( '#site' ).autocomplete({
source: 'siteCheck.php?name=' + request.term,
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
$('#site').val(ui);
}
});
编辑:
尝试修改您的服务器端脚本以接受 term
作为 GET 参数,然后您的 URL 可以删除该部分,添加术语,因为自动完成会为您完成:
source: 'siteCheck.php', //should accept term as parameter