Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome-使用Ajax、JS和PHP自动完成_Javascript_Php_Jquery_Ajax_Google Chrome - Fatal编程技术网

Javascript Chrome-使用Ajax、JS和PHP自动完成

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

我想为我的php webapp创建一个自动完成文本字段

用户可以在Textfield中输入一些文本,onkeyup事件启动Ajax异步请求。我的php文件返回一个json对象,其中包含与输入文本匹配的元素。 我将可能的条目放入数据列表中

这在firefox上运行得很好,但在google Chrome上却不行

神秘的: -如果我调试Chrome版本,则在每次触发事件后,源代码中的数据列表都是正确的。 =>但数据列表弹出窗口仅显示1个条目

下面是一些代码:

<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!');
              }   
            });
        }