2012-01-18 26 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