1

我已经做了一些搜索,但找不到我的问题的答案。jQuery自动完成在输入第二个字母后停止

问题:当第一个字母输入到输入框中时,我的jQuery自动完成实现工作,但是当第二个字母输入时,建议消失(就像我输入了一个不正确的字母)。

我的jQuery代码:

​​

这里是传递给源(JSON编码)的数据:

[{"name":"test 2","pic":"\/events\/images\/default\/dp\/micro_placeholder.jpg","id":"60705234"}] 

所以,当我键入 “T” 它的工作原理,但我当键入一个“e”,所以“te”现在在输入框中,“测试2”建议消失。

任何人都知道这里发生了什么?

谢谢:)

+0

有什么错误? – 2012-08-08 18:02:33

+0

@RicardoLohmann没有显示错误,只是停止提供建议。试图填写其余的字母,但没有弹出 – 2012-08-08 18:04:32

回答

0

您使用自动完成必须有对象了label属性的源阵列,value财产,或两者(如在文档中overview page概述)。

var src = <?php echo json_encode($array); ?>; 

$.each(src, function() { 
    this.value = this.name; 
}); 

$(document).ready(function() { 
    $('#invite-connections').autocomplete({ 
     minLength: 0, 
     source: src, 
     focus: function(event, ui) { 
      $('#invite-connections').val(ui.item.name); 
      return false; 
     }, 
     select : function(event, ui) { 
      $('#invite-connections').val(ui.item.name); 
      $('#invite-connections-user-id').val(ui.item.id); 
      $('#invite-connections-submit').show(); 
      return false; 
     } 
    }) 
    .data("autocomplete")._renderItem = function(ul, item) { 
     return $("<li type=\"none\"></li>") 
      .data("item.autocomplete", item) 
      .append("<a><img src=\"" + item.pic + "\" /> " + item.name + "</a>") 
      .appendTo(ul); 
    } 
});​ 

举例::http://jsfiddle.net/ASwRj/

该“T”和“e”分别工作的原因是因为每个用户可以通过添加这些性质中的一种变换的源阵列到一个小部件支持在你的数组的字符串表示物体看起来像:

[object Object] 

没有任何匹配的属性,自动完成控件试图匹配你键入到T的字符串表示什么他反对说,这就是为什么你在输入“s”的那一刻就停止看到结果的原因。

相关问题