【发布时间】:2014-01-22 07:52:05
【问题描述】:
我正在尝试使用带有多个值且以逗号分隔的文本框的自动完成选项,但它会在 jquery 警告框中引发“错误”。
<asp:Content ID="content1" runat="server" ContentPlaceHolderID="AdminHead">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
SearchText();
});
function SearchText() {
$('#<%=txtauthor.ClientID%>').autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Author/Add.aspx/GetAutoCompleteData",
data: "{'username':'" + extractLast(request.term) + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
},
focus: function () {
return false;
},
select: function (event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join(", ");
return false;
}
});
$('#<%=txtauthor.ClientID%>').bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active)
{
event.preventDefault();
}
})
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
}
</script>
和文本框
<asp:TextBox ID="txtauthor" Width="700px" runat="server"></asp:TextBox>
和 C# 获取列表
[WebMethod]
public static List<AuthorDetail> GetAutoCompleteData(string username)
{
AuthorCalls mcr = new AuthorCalls ();
return mcr.GetAutoCompleteAuthorName(username);
}
我尝试在要查看的方法上设置断点,但它也没有调用该方法。 我错过了什么?
【问题讨论】:
-
尝试在错误部分提醒结果而不是 alert("Error");
-
我很累,但我得到 [object XMLHttpRequest] 错误。
标签: jquery asp.net jquery-ui jquery-ui-autocomplete