我该如何处理我的文本框自动完成功能

时间:2012-01-18 19:51:12

标签: javascript jquery asp.net ajax

我正在尝试对文本框执行自动填充,但它不起作用。按照我的代码。

    $(function () {

    var credenciada = '<%= credenciadaId %>';

    xml_NomeCompleto = "";
    var Nomes = "";
    var retorno = '';
    var count = 0;
    var t = '';
    $.ajax({
        url: "../Xml/AcessoExterno.aspx?Credenciada=" + credenciada,
        type: "get",
        dataType: 'xml',
        async: false,
        success: function (data) {

            $(data).find("REGISTRO").each(function () {
                t = $(this).find("NOMECOMPLETOUSUARIO").text();
                Nomes += ["\"" + t + "\","];
            });
        }
    });
    $("#ctl00_contentConteudo_txtNome").autocomplete({ source: Nomes });
});

变量't'通常会收到我的所有用户名,但自动填充功能不起作用。

1 个答案:

答案 0 :(得分:2)

等待ajax响应完成,然后初始化autocomplete,因为在初始化插件数据之前不可用。你创建Nomes(源代码)的方式也是错误的。将其声明为数组并使用push方法填充它。

试试这个

   var Nomes = [];
   $.ajax({
        url: "../Xml/AcessoExterno.aspx?Credenciada=" + credenciada,
        type: "get",
        dataType: 'xml',
        async: false,
        success: function (data) {
            $(data).find("REGISTRO").each(function () {
                Nomes.push($(this).find("NOMECOMPLETOUSUARIO").text());
            });
            $("#ctl00_contentConteudo_txtNome").autocomplete({ source: Nomes });
        }
    });