JQuery自动完成不显示

问题描述:

我已经使用JQuery UI自动完成来减少我必须在下拉菜单中显示的部分列表,我也使用json传递部分列表,但是我无法看到结果,我相信这是对我对JQuery的Map函数的有限理解。JQuery自动完成不显示

我有以下的JSON

{"parts":[{"partNumber":"654356"},{"partNumber":"654348"},{"partNumber":"654355-6"},{"partNumber":"654355"},{"partNumber":"654357"},{"partNumber":"654357-6"},{"partNumber":"654348-6"}]} 

其上JSONLint验证正确

我观看了职位和利用萤火虫的反应,看到他们是正确的,但我的自动完成似乎不显示,最接近我这样做,是当我显示整个JSON字符串,每个字符都有一个新行。

这里是我JS

$('.partsTextBox').autocomplete({ 
    minLength: 3, 
    source: function(request, response) { 
     $.ajax({ 
      url: './PartSearch.ashx', 
      data: $('.partsTextBox').serialize(), 
      datatype: 'JSON', 
      type: 'POST', 
      success: function(data) { 
       response($.map(data, function(item) { 
        return { label: item.partNumber } 
       })) 
      } 
     }); 
    }, 

    select: function(e) { 
     ptb.value = e; 
    } 
}); 

任何帮助,任何人都可以给将不胜感激。已编辑以包括soderslatt

+0

我看不出你是否使用回调,你能告诉我吗?我的眼睛有点酸痛 – AlfredoVR 2011-12-21 07:43:42

+0

对不起,我不确定你的意思,如果你的意思是我使用检索的数据,那么我相信我在成功功能。 – Deviland 2011-12-21 07:45:21

+0

在* Firebug控制台*中是否显示任何错误? “响应”函数是否正确解析? – 2011-12-21 08:00:23

jQuery的自动完成插件格式给出助阵必须

{ “查询”: “your_query”, “建议”: “suggestions_1”, “suggestions_2”], “数据”: [your_data]}}

,并使用自动完成该

$('#your_input').autocomplete({ 
    minChars: 2 
    , serviceUrl: './PartSearch.ashx' 
    , deferRequestBy: 50 
    , noCache: true 
    , params: { } 
    , onSelect: function(value, data) { 

    } 
    , ajaxCallBack: function() { 
      response($.map(data, function(item) { 
       return { label: item.partNumber} 
      })) 
    } 
}); 
+0

2个问题,你是说我需要改变我的JSON格式?而且我找不到你在文档中提供的自动完成选项(我可能错过了这里的东西)? – Deviland 2011-12-21 08:31:24

+0

嗯也许其他版本的自动完成, 我使用这个 http://www.devbridge.com/projects/autocomplete/jquery/ – 2011-12-21 08:37:19

+0

解释它我使用JQuery UI自动完成,我已更新原始问题来指定此,我我正在研究你使用的插件。 – Deviland 2011-12-21 08:42:12

我不知道,但不应部分:第一部分是数组?

http://jsfiddle.net/jfTVL/3/

+0

谁我UPsdated你的代码中有我的JSON的一个片段,像这样 $(函数(){VAR 部分= [ { “部分号码”: “654356”},{ “部分号码”: “654348”},{ “部分号码”: “654355-6”},{ “部分号码”: “654355”},{ “部分号码”: “654357” },{“partNumber”:“654357-6”},{“partNumber”:“654348-6”}]; $(“#tags”).autocomplete(source:function(request,response){ ($。map(parts.part,function(item){ return {label:item.partNumber} })) } }); }); 还是我第一次的jsfiddle没有输出:( – Deviland 2011-12-21 10:10:06

+0

我改成了一个数组,跟你的新结构,新的jsfiddle如上所述,HTTP://jsfiddle.net/jfTVL/6/ – anderssonola 2011-12-21 10:19:10

+0

我看到你的jsfiddle作品和我不能看到我在做什么与我的ajax查询返回的数据是不同的响应?我看到结构回来并传递到响应函数,但项目仍然只包含一个suingle字符数组现在真正混淆现在作为您的示例工程好吗? – Deviland 2011-12-21 10:37:07

jQuery autocomplete page

本地数据可以是字符串的简单阵列,或者它包含每个项目的对象的阵列中,与任一标签或值属性或二者。标签属性显示在建议菜单中。在用户从菜单中选择一些内容后,该值将被插入到输入元素中。如果只指定了一个属性,它将用于两个,例如。如果您仅提供值属性,则该值也将用作标签。

这意味着如果你使用“value”而不是“partNumber”,你应该想要你想要的。