【问题标题】:Jquery UI autocomplete not displaying resultsJquery UI自动完成不显示结果
【发布时间】:2011-10-12 23:34:12
【问题描述】:

我知道问题标题似乎重复,但我一直无法找到此问题的答案。

我正在使用 Jquery UI 的自动完成功能,我可以在调试器中看到正确的 JSON 数据。但是,文本框没有返回任何内容。

我的javascript:

<script type="text/javascript">
    $(document).ready(function () {
        myAutoComplete("#<%= myTxtBox.ClientID %>", "AutoCompletePage.aspx");
    });

    function myAutoComplete(ObjectId, DataURL) {
        $(ObjectId).autocomplete({
            source: function (request, response) {
                $.ajax({ url: DataURL, dataType: 'jsonp',
                    data: { q: request.term, limit: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item[1], value: item[0], id: item[0]}
                        }))
                    }
                })
            }
        });
    }

</script>

来自我的 AutoCompletePage.aspx 页面的 sn-p:

foreach (DataRow dataRow in dataTable.Rows)
{
    string[] cells = new string[] { dataRow[0].ToString(), dataRow[1].ToString() };
    output.Add(cells);
}

后来……

Response.Write(json.Serialize(output));

您可以在这张图片中看到 JSON 数据正在被返回,但我的文本框没有发生任何事情。提前感谢任何可以提供帮助的人。

【问题讨论】:

  • myTxtBox的定义呢?

标签: asp.net jquery-ui autocomplete jquery-ui-autocomplete


【解决方案1】:

我有一种预感,你不应该在这里使用jsonp。 JSONP一般用于跨域请求。

您似乎是在同一个域中发出请求(另外,返回的数据可能没有回调函数可以调用),所以您只需使用普通的json 就可以了。

尝试将datatype 参数更改为json

    $(ObjectId).autocomplete({
        source: function (request, response) {
            $.ajax({ url: DataURL, dataType: 'json',
                data: { q: request.term, limit: 10 },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item[1], value: item[0], id: item[0]}
                    }))
                }
            })
        }
    });

【讨论】:

  • 哇。我已经尝试了很多有和没有 json/jsonp 的变体(也尝试了类型:POST),但是这个有效。感谢您的简单回答。我使用 jsonp 是因为它在 jqueryui 网站上的示例中使用,但我想这是因为他们正在从不同的域中提取数据。再次感谢。
  • @WEFX:没问题!很高兴帮助:)
猜你喜欢
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多