如何解决autosuggest中的错误?

时间:2014-03-08 15:46:30

标签: javascript json

我正在为我的网站使用JavaScript自动提示。每次按键时该功能都会触发。

现在我遇到了一个问题。

当我键入“hosp”时,它将以JSON格式从数据库中获取所有值,如“hosp”。我也在JSON中获得结果[例如5个结果]。但它没有显示在自动提示窗口[只有一个显示],而且疯狂的是,如果我在它的工作之间发出警告[所有5个正在显示]。

 //alert(req.responseText); if i remove the comment its showing all the values
 var jsondata = eval('(' + req.responseText + ')');
 for (var i=0;i<jsondata.results.length;i++)
 {
this.aSug.push(  { 'id':jsondata.results[i].id, 'value':jsondata.results[i].value, 'info':jsondata.results[i].info }  );
}

此外,如果我按下退格键,即使没有警报也能正常工作!

以下功能正在创建 li 元素

function myLoop (arr,i,ul) {           //  create a loop function
alert(arr);
var pointer = this;
setTimeout(function () {            
var output = arr[i].value;
var span = _b.DOM.cE("span", {}, output, true);
if (arr[i].info != "")
{
    var br          = _b.DOM.cE("br", {});
    span.appendChild(br);
    var smalls      = _b.DOM.cE("small", {}, arr[i].info);
    span.appendChild(smalls);
}
var a       = _b.DOM.cE("a", { href:"#" });
var tl      = _b.DOM.cE("span", {className:"tl"}, " ");
var tr      = _b.DOM.cE("span", {className:"tr"}, " ");
a.appendChild(tl);
a.appendChild(tr);
a.appendChild(span);
a.name = i+1;       
a.onclick = function () { pointer.setHighlightedValue(); return false; };
a.onmouseover = function () { pointer.setHighlight(this.name); };
var li = _b.DOM.cE(  "li", {}, a  );
ul.appendChild(li);          //  your code here
j=i+1; //  increment the counter
    if (i < arr.length) {            //  if the counter < 10, call the loop function
        myLoop(arr,j,ul);             //  ..  again which will trigger another 
    }                        //  ..  setTimeout()
},10);
}

0 个答案:

没有答案