사용자가 이름을 입력하기 시작할 때 자동 완성 플러그인을 사용하여 일부 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();
}