0
JQuery UIオートコンプリート機能を使用して結果を表示しています。すべてのケースで正しく動作しているように見えますが、テキストボックスに値を貼り付けるのは初めてです。それは結果を取得しますが、までは、を押す必要があります。 1つは私がキーを押すと、それは結果とオートコンプリートUIを示しています。次に検索する単語を貼り付けると、それは完璧に機能し、オートコンプリートの結果が表示されます。私が使用しているコードは以下の通りです。JQuery UIオートコンプリートで最初に結果が自動的に表示されない
$("input.autocompleteData").on('input', function (e) {
e.stopImmediatePropagation();
var txtVal = $(this).val().toLowerCase();
var pastedValue = true;
getAutoCompletedata($(this), txtVal, pastedValue);
});
function getAutoCompletedata(cntl, input, pastedValue) {
var self = this;
if (input.length < 2) {
// Clear the array
self.hqListData = [];
}
else if (input.length == 2 || pastedValue) {
getHQListData(input);
}
// first clear array
self.hqFilterListData = [];
// fill data
// for text length greater than minLengthForSearch filter data from array
$.each(self.hqListData, function (i, val) {
if (val != undefined && val != null && val.name.toLowerCase().indexOf(input) >= 0) {
//push data into payerFilterList
self.hqFilterListData.push({ label: val.name, value: val.id });
}
});
$(cntl).autocomplete({
source: self.hqFilterListData, scroll: true, select: function (e, ui) {
var uniqueId = new Date().getTime();
var alreadyAdded = false;
$("div#resultsection input[type='hidden']").each(function (i) {
if (unescape(this.value).trim() === unescape(ui.item.value).trim()) {
alreadyAdded = true;
return false;
}
});
if (!alreadyAdded) {
$("#resultsection").empty();
$("#resultsection").append("<span id='" + uniqueId + "' class='multiselectContainer'><span class='indivSelectedText'>" + ui.item.label + "</span><input class='indivSelectedValue' type='hidden' value=" + escape(ui.item.value) + " ></input> <a href='#' class='fa fa-times-circle labelclose'></a></span>");
}
$(cntl).val('');
return false;
},
focus: function (event, ui) {
$(this).val(ui.item.label);
return false;
}
});
}
function getHQListData(input) {
var self = this;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ReviewPools.aspx/GetHQList",
data: JSON.stringify({ 'searchText': input }),
dataType: "json",
async: false,
success: function (output) {
var retVal = JSON.parse(output.d); // output.d
if (retVal.length === 0) {
alert("No Headquarter Found");
return false;
}
self.hqListData = [];
$.each(retVal, function (i, val) {
self.hqListData.push({ "id": val.BUSINESS_RID, "name": val.COMPANY_NAME });
});
},
error: function (errormsg) {
alert(errormsg.responseText);
state = 0;
}
});
}
初めて値を貼り付けても問題ありません。結果は表示されますが、ダウンキーを押した場合にのみ表示されます。 JqueryUIの問題ですか?私は何が欠けていますか?