2009-10-27 2 views
2

사용자가 이름을 입력하기 시작할 때 자동 완성 플러그인을 사용하여 일부 JQuery를 작성하려고합니다 (아래 코드 참조). 사용자가 입력 한 사용자의 이름을 변경하기 위해 백 스페이스를 시작하지 않으면 코드가 올바르게 작동하므로 자동 완성 결과에서 기존 값보다 새로운 값을 쓰게됩니다. 여기에 내가 잘못하고있는 것이 있습니까, 아마도 autocomplete를 시작하기 위해 keyup 함수를 사용하거나, 사용자가 백업을 시작하면 기존의 자동 완성 결과를 지울 수있는 방법이 있습니까? 여기 C#으로 ASP.Net 페이지의 JQuery AutoComplete 플러그인

는 Default.aspx를 마크 업 파일에서 JQuery와 코드 :

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="js/jquery-1.3.2.js" ></script> 
    <script type="text/javascript" src="js/jquery.autocomplete.js" ></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("#example").keyup(function() { 
      $.ajax({ 
        type: "POST", 
        url: "Default.aspx/GetCustomerNames", 
        data: "{ searchParam: '" + $("#example").val() + "'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(msg) { 
         $("#example").autocomplete(msg.d, 
          { scroll: false, max: 10, width: 250, selectFirst: true }); 
        } 
      }); 
     }); 
    });  
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div>   
     Customer Name: <input id="example" autocomplete="off" type="text" />  
    </div> 
    </form> 
</body> 
</html> 

그리고 여기에 데이터를 반환 나의하여 default.aspx.cs의 코드 숨김 파일의 코드입니다 :

[WebMethod] 
public static string[] GetCustomerNames(string searchParam) 
{ 
    List<string> data = new List<string>() { "Andrew", "Ramona", "Russ", "Russell", "Raymond", "Annette", "Anthony" }; 

    List<string> names = new List<string>(); 

    foreach (string s in data) 
    { 
     if (s.ToLower().StartsWith(searchParam)) 
     { 
      names.Add(s); 
     } 
    } 

    return names.ToArray(); 

} 

답변

1

을 필자는 자동 완성 기능의 첫 번째 매개 변수로 검색 페이지를 제공 할 수 있다고 생각했습니다.

$(document).ready(function(){ 
    $("#example").autocomplete("Default.aspx/GetCustomerNames", { scroll: false, max: 10, width: 250, selectFirst: true }); 
}); 

뭔가처럼, 당신은 당신이 원하는 것을 얻을하는 데 사용할 올바른 옵션을 찾을 필요가 수도 있지만, 적어도 각의 keyup 후 자동 완성을 다시 설치되지 않습니다.