0

我正在尝试按照http://jqueryui.com/autocomplete/#remote中的示例构建一个自动完成输入。到目前为止,这些代码在 Opera、Firefox 和 Chrome 中有效,但在 IE8 和 IE9 中无效。以下是我的代码和服务器对 TestData 的响应。

过去几天一直在测试这些,但没有成功。将不胜感激这里的任何大师都可以提供帮助。

谢谢。

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Test</title>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
        <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
        <script>
            $(function() {
                $( "#test" ).autocomplete({
                    source: "TestData",
                    minLength: 2
                });
            })
        </script>
    </head>
    <body>
        <div class="ui-widget">
            <input id="test" />
        </div>
    </body>
</html>

来自服务器的响应头

Key             Value
Response        HTTP/1.0 200 
Server          Development/1.0
Date            Mon, 26 Nov 2012 02:49:31 GMT
Cache-Control   no-cache
Content-Type    text/html; charset=utf8
Content-Length  43

响应正文

[{"id":"1","value":"a1","label":"a1 test"}]
4

1 回答 1

0

为了更精细地控制 Web 服务实际返回的内容,我建议以这种方式实现:

$( "#city" ).autocomplete({
            source: function( request, response ) {
                $.ajax({
                    .............
                    success: function( data ) {
                        var transformedData = transformData(data);
                        // feeding back to jquery autocomplete 
                        response( transformedData );
                    }
                });
            });

如果您在成功函数中设置断点,您应该能够在调试器中看到从 Web 服务获得的内容。

于 2012-11-26T04:34:45.080 回答