[英]Debugger not reaching select statement in jQuery.autocomplete
我在ASP.NET
頁面中有一個動態網格。 當我單擊Add User
時,它會創建一個帶有 Textbox 控件的空記錄,並且當用戶在第一個Textbox - UserName
中鍵入內容時,它應該從數據庫中提取UserNames
並且autocomplete
應該適用於該 Textbox 控件。
我已經實現jQuery.autocomplete
function 如下。
jQuery("#" + e.id).autocomplete({
source: function (request, response) {
var txtSearch = jQuery("#" + e.id).attr("id");
var t = jQuery("#" + txtSearch).val();
var URL = "../Users.aspx?UserName=" + t;
jQuery.ajax({
url: URL,
success: function (data) {
switch (data) {
case 'NOVALUESFOUND':
var rftspanID = e.id.replace("txt", "span");
break;
default:
var rftspanID = e.id.replace("txt", "span");
var rows = data.split("|");
var jsStr = "var datalist=[";
for (i = 0; i < rows.length - 1; i++) {
var s = rows[i].toString();
s = s.replace("'", "\\'");
s = s.replace('"', "\\'");
var row = s.split("~");
jsStr += "{id:'" + row[0].toString() + "'";
jsStr += ",name:'" + row[1].toString() + "'},";
}
jsStr = jsStr.slice(0, jsStr.length - 1);
jsStr += "];";
eval(jsStr);
if (typeof (datalist) != 'undefined') {
response(jQuery.map(datalist, function (items) {
if (items.id != undefined) {
return {
value: items.name,
id: items.id
}
}
}));
}
}
}
});
},
minlength: 1,
select: function (event, ui) {
if (Type == 1) {
document.getElementById("txtUser" + MemCount).value = ui.item.value;
}
else if (Type == 2) {
document.getElementById("txtRole" + MemCount).value = ui.item.value;
}
},
open: function () {
jQuery(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function (event) {
jQuery(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
當我嘗試調試此自動完成時,數據將出現在response(jQuery.map(datalist, function (items)
語句的末尾。但是select:
選項未觸發。
編輯
下面的屏幕截圖顯示了數據是如何形成的。
這就是服務器端 Users.aspx.vb Page_Load 事件中存在的內容
Response.Clear()
Response.Write(GetUserName(Request.QueryString("UserName")))
Response.End()
可能是什么問題呢?
第一的。 在響應中,您檢查 swith 中的數據變量。 你得到它作為一個字符串。 第二。 使用 ajax 的最佳方式是 JSON。
jQuery.ajax({
url: url,
dataType: 'json'
成功響應:進行解析。
json = JSON.parse(data)
然后你已經應用了你的邏輯,我使用單獨的 object 變量。
swith(json.string){ .... }
使用必要的參數填充文本框控件會更容易:json.user - 該變量將包含有關用戶的數據數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.