我有一個與自動完成插件關聯的asp.net文本框。因此,我有一個擴展插件autoSelect匹配元素時,用戶,而不是選擇,只是按下製表鍵(模糊)。以下是該代碼。問題是,第一次模糊事件調用正確,整個功能工作得很好。但第二次,它根本不起作用,它只需要第一個元素的值。登錄到ASP.NET應用程序後Response.Redirect無法正常工作
在我的情況是這樣的情況。我有一個文本框和一個添加按鈕。該文本框具有自動完成功能,我輸入gram並填充所有單位。由於gram是數據源中的單位之一,因此按Tab鍵將接受該選項,並且當按下按鈕時,文本克及其相應的ID將添加到網格視圖中。然後文本框將變爲空白以添加更多這樣的條目。問題是,第二次當我輸入與自動建議菜單項相匹配的內容並按Tab按鈕時,模糊事件不會觸發。
$(".ui-autocomplete-input").on("blur", function (event) {
debugger;
if ($(this)[0].id == $("#MainContent_TabContainer1_TabpanelNormal_textinput")[0].id) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "./AddRecipe.aspx/CheckIfRecipeTitleExists",
data: "{'title':'" + $('#' + 'MainContent_TabContainer1_TabpanelNormal_textinput').val() + "'}",
dataType: "text",
success: function (data) {
var oData = JSON.parse(data);
if (oData.d == "True") {
var textvalue = $('#MainContent_TabContainer1_TabpanelNormal_textinput').val();
alert("Recipe title " + textvalue + " already exists in our database. Please choose another title.");
$('#MainContent_TabContainer1_TabpanelNormal_textinput').val("");
$('#MainContent_TabContainer1_TabpanelNormal_textinput').focus();
}
}
});
}
var autocomplete = $(this).data("autocomplete");
if (autocomplete.selectedItem) { return; }
var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "i");
autocomplete.widget().children(".ui-menu-item").each(function() {
var item = $(this).data("item.autocomplete");
if (matcher.test(item.label || item.value || item)) {
autocomplete.selectedItem = item;
return false;
}
});
if (autocomplete.selectedItem) {
autocomplete._trigger("select", event, { item: autocomplete.selectedItem });
}
});
請幫我理解爲什麼第二次不開火。
一個以HTML爲例的最簡單的例子,在JSFiddle中,對於像這樣的問題會很有用 – 2014-09-06 07:05:18