2012-01-18 51 views
0

我想对我的文本框做一个自动完成,但它不起作用。按照我的代码。我怎样才能做到我的文本框自动完成,作品

$(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'通常会收到我的用户的所有名称,但自动完成功能不起作用。

+0

你有过一个Javascript调试器中运行呢? – 2012-01-18 19:54:01

+0

是的,我把'调试器';'一切工作正常,但仍然在我的文本框中的自动完成 – 2012-01-18 19:58:46

回答

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 }); 
     } 
    }); 
+0

好吧,我把这个,但我看不到结果,因为太慢...只是加载... – 2012-01-18 20:00:33

+0

工作精美!非常感谢! – 2012-01-19 10:27:46

相关问题