JQuery自动完成IE8(Web服务ASMX))

时间:2015-09-21 14:03:03

标签: javascript jquery asp.net web-services internet-explorer-8

请帮助!

我正在尝试使用Web服务(ASMX)文件。当我查看并查询它时,页面返回我想要的内容。所以这个页面看起来很好。

问题是我正在尝试在我的ASP.NET应用程序中向文本框添加自动完成,但它似乎没有做任何事情!我在我的Site.master文件中包含了所有相关的JQuery文件(jquery-ui.js,jquery-ui-css,query-1-11.2.min.js)。

在我的页面中,我已经包含了Javascript来执行自动完成功能。

有人能指出我正确的方向吗?我还在使用IE8 ......

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script type="text/javascript">
    $(document).ready(function () {
        $('#txtAutoFill').autocomplete({
            minLength: 2,
            source: function (request, response) {
                $.ajax({
                    url: 'UserList.asmx/GetAutoCompleteData',
                    method: 'post',
                    contentType: 'application/json;charset=utf-8',
                    //data: JSON.stringify({ username: request.username }),
                    data: request.username,
                    dataType: "json",
                    success: function (data) {
                        response(data.d);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            }
        });
    });
</script>

<asp:Content ID="Content2" ContentPlaceHolderID="mainContentPH" runat="server">
    <h1 id="h01"></h1>
    <asp:TextBox ID="txtAutoFill" runat="server" CssClass="form-control"></asp:TextBox>

</asp:Content>

2 个答案:

答案 0 :(得分:0)

要检查的一件事。即使您的文本框ID是&#34; txtAutoFill&#34;在服务器端,它可以包括生成实际页面时的容器ID(即Content2_txtAutoFill)。如果是这种情况,请在浏览器中查看页面来源,并在您的javascript中更改您的ID以与之匹配。另请参阅Understanding and implementing jQuery autocomplete with AJAX source and appendTo

答案 1 :(得分:0)

添加ClientIDMode =&#34;静态&#34;到您的TextBox控件

<asp:TextBox ClientIDMode="Static" ID="txtAutoFill" runat="server" CssClass="form-control"></asp:TextBox>