我想为我的php webapp创建一个自动填充文本字段。
用户可以在Textfield中输入一些文本,“onkeyup”事件会启动Ajax异步请求。我的php文件返回一个带有元素的json对象,这些元素与输入的文本匹配。 我将可能的条目放入Datalist中。
用firefox工作得很好 - 但不是google Chrome?!
神秘: - 如果我调试了Chrome版本,则每次触发事件后,源中的Datalist都是正确的。 =>但“Datalist popup”只显示1个条目?!
以下是一些代码:
<input id="inputx" list="dliste" onkeyup="search()"/>ich</button>
<datalist id="dliste"></datalist>
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!');
}
});
}
问题出在哪里? 非常感谢你:))
编辑: 发现了Firefox和Chrome之间的区别。 - &gt; Firefox检查,如果datalist元素包含输入的文本 - &gt; Chrome检查,如果数据列表元素使用输入的文本
EG。选项“你好”。 用户输入“ello”: - &gt; firefox在列表中显示它 - &gt; chrome没有显示它。
是否有可能通过解决方法解决这个问题?