jQuery自动完成数据源更改

| 我已经设置了一个jQuery自动完成功能,它会根据文本框上的输入来更改数据源。 jQuery上的数据源更改后,直到按下向上或向下箭头按钮后,它才会触发。 我已经使用firebug来检查数据源,但找不到任何错误。 有人可以告诉我如何将向上或向下箭头键发送到控件或以其他任何方式解决此问题吗? 非常感谢! 编辑:我已将其替换为JSON,如下所示,但似乎请求来自错误警报框   jQuery(函数(){               jQuery(\“ input#autocomplete \”)。autocomplete({                   contentType:\'application / json; charset = utf-8 \',                   dataType:\'json \',                   mustMatch:假,                   限制:10,                   minChars:2
            select: function (event, ui) {
                AutoCompleteSelectHandler(event, ui)
            }
            ,
            source: function (request, response) {
                jQuery.ajax({
                    url: \"http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb\",
                    data: {},
                    dataType: \"json\",
                    type: \"POST\",
                    contentType: \"application/json; charset=utf-8\",
                    dataFilter: function (data) { return data; },
                    success: function (data) {
                        alert(data);
                    },
                    error: function (XMLHttpRequest, textStatus,
     errorThrown){                               alert(textStatus);                           }                       });                   }               });
    });
有这个HTML输入框。 我在这里做错了什么?我已确认该Web服务正常运行。 edit2:我进行了如下更改:   jQuery(函数(){               jQuery(\“ input#autocomplete \”)。autocomplete({
            minChars: 2,

            select: function (event, ui) {
                AutoCompleteSelectHandler(event, ui)
            }
            ,
            source: function (request, response) {
                jQuery.ajax({
                    url: \"http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb\",
                    data: \'{ Suburb: \"\' +
     jQuery(\“#autocomplete \”)。val()+ \'\“} \',                           dataType:\“ json \”,                           输入:\“ POST \”,                           contentType:\“ application / json; charset = utf-8 \”,                           dataFilter:函数(数据){返回data.d; },                           成功:功能(数据){                               警报(data.d);                           },                           错误:函数(XMLHttpRequest,textStatus,   errorThrown){                               alert(textStatus);                           }                       });                   }               });
    });
因此警报运行正常。但是,jQuery不显示匹配列表。我该怎么做呢? 编辑2: 我设法解决了webservice的问题。如何设置响应,以便自动完成功能可以相应地显示列表?目前,列表中的每个项目都向我显示了项目的完整列表。 即)如果我输入\'ab \'并且如果有3项匹配,那么它将在3条不同的线上向我显示3次相同的结果。 我有类似以下的jquery设置: jQuery(函数(){             jQuery(\“ input#autocomplete \”)。autocomplete({
            minChars: 2,

            select: function (event, ui) {
                AutoCompleteSelectHandler(event, ui)
            }
            ,
            source: function (request, response) {
                jQuery.ajax({
                    url: \"http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb\",
                    data: \'{ Suburb: \"\' + jQuery(\"#autocomplete\").val() + \'\" }\',
                    dataType: \"json\",
                    type: \"POST\",
                    contentType: \"application/json; charset=utf-8\",
                    dataFilter: function (data) { return data; },
                    success: function (data) {

                                                    response($.map(data.d, function (item) {
                                                        return {
                                                            value: data.d
                                                        }
                                                                                }))


                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            }
        });
任何帮助将不胜感激,非常感谢!     
已邀请:
        我已经开始工作了,但我不确定的是该项目只是一个字符串数组,而不是JSON对象。我确实尝试将每个项目解析为JSON,但似乎不起作用。 这是带有webservice jquery组合的有效jquery json。 jQuery(函数(){             jQuery(\“ input#autocomplete \”)。autocomplete({
            minChars: 2,

            select: function (event, ui) {
                AutoCompleteSelectHandler(event, ui)
            }
            ,
            source: function (request, response) {
                jQuery.ajax({
                    url: \"http://localhost/integration/webservices/PostcodeJSON.asmx/GetPostCodeListJSONfromSuburb\",
                    data: \'{ Suburb: \"\' + jQuery(\"#autocomplete\").val() + \'\" }\',
                    dataType: \"json\",
                    type: \"POST\",
                    minChars: 2,
                    contentType: \"application/json; charset=utf-8\",
                    dataFilter: function (data) { return data; },
                    success: function (data) {
                        var obj = jQuery.parseJSON(data.d);
                        response($.map(obj, function (item) {
                            var item_obj = jQuery.parseJSON(item);
                            return {
                                value: item[1]


                            }
                        }))


                    },
                    //                        parse: function (data) {
                    //                            var parsed = [];
                    //                            data = data.d;

                    //                            for (var i = 0; i < data.length; i++) {
                    //                                parsed[parsed.length] = {
                    //                                    data: data[i],
                    //                                    value: data[i].value,
                    //                                    result: data[i].value
                    //                                };
                    //                            }

                    //                            return parsed;
                    //                        },
                    //                        formatItem: function (item) {
                    //                            return item.value;
                    //                        },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            }
        });



    });
    

要回复问题请先登录注册