Javascript Chrome-使用Ajax、JS和PHP自动完成
我想为我的php webapp创建一个自动完成文本字段 用户可以在Textfield中输入一些文本,onkeyup事件启动Ajax异步请求。我的php文件返回一个json对象,其中包含与输入文本匹配的元素。 我将可能的条目放入数据列表中 这在firefox上运行得很好,但在google Chrome上却不行 神秘的: -如果我调试Chrome版本,则在每次触发事件后,源代码中的数据列表都是正确的。 =>但数据列表弹出窗口仅显示1个条目 下面是一些代码:Javascript Chrome-使用Ajax、JS和PHP自动完成,javascript,php,jquery,ajax,google-chrome,Javascript,Php,Jquery,Ajax,Google Chrome,我想为我的php webapp创建一个自动完成文本字段 用户可以在Textfield中输入一些文本,onkeyup事件启动Ajax异步请求。我的php文件返回一个json对象,其中包含与输入文本匹配的元素。 我将可能的条目放入数据列表中 这在firefox上运行得很好,但在google Chrome上却不行 神秘的: -如果我调试Chrome版本,则在每次触发事件后,源代码中的数据列表都是正确的。 =>但数据列表弹出窗口仅显示1个条目 下面是一些代码: <input id="inputx
<input id="inputx" list="dliste" onkeyup="search()"/>ich</button>
<datalist id="dliste"></datalist>
问题在哪里?
多谢各位:
编辑:
发现了Firefox和Chrome的区别。
->Firefox检查datalist元素是否包含输入的文本
->Chrome会检查datalist元素是否以输入的文本开头
你好。
用户输入的ello:
->firefox会在列表中显示它
->铬不显示它
是否有可能通过解决方法解决此问题?您需要在id和值$'dliste'之间留出空间;谢谢:。但并不能解决问题:使用console.log查看data.length的值是多少,以及它是否正确data.length总是正确的。数据列表设置正确。。。但自动完成弹出窗口并不包含所有条目:/
function search(){
var text = $('#inputx').val();
if(text=='')
return;
$.ajax({
url: "functions/autoHandler.php",
type: "POST",
dataType: 'json',
data: "search="+text,
success: function(data){
$('#dliste').html('');
for(var i=0;i<data.length;i++){
$('#dliste').append('<option id="'+data[i][0]+'"value="'+data[i][1]+'"></option>');
}
},
error:function(){
alert('Error!');
}
});
}