【发布时间】:2014-07-24 21:15:57
【问题描述】:
我在下面有几个 inputTextbox 的自动完成功能的代码。输入框也共享同一个类“.wikiInput”。当用户在其中任何一个中输入内容时,应该会出现一个相关的自动完成下拉框。而不是一一硬编码。如何使用数组或数组组将它们分组为一个?请注意,查找在不同页面中有不同的数组。并非每个页面都显示所有需要的数组。
(function () {
var cdTeamInput = $("#ctl00_ContentPlaceHolder1_txtAssociation");
if (cdTeamInput.length > 0) {
cdTeamInput.autocomplete({
deferRequestBy: 0,
autoSelectFirst: true,
lookup: txtAssociation,
onSelect: function (value, data) {
cdTeamInput.val(value.value);
$(".wikiSubmit").click();
}
});
}
})();
(function () {
var cdSubjectInput = $("#ctl00_ContentPlaceHolder1_txtSubject");
if (cdSubjectInput.length > 0) {
cdSubjectInput.autocomplete({
deferRequestBy: 0,
autoSelectFirst: true,
lookup: txtSubject,
onSelect: function (value, data) {
cdSubjectInput.val(value.value);
$(".wikiSubmit").click();
}
});
}
})();
到目前为止,我得到了但仍然不适用于跨页数组对象。控制台一直说我有未定义的变量,因为并非每个页面都有所有可用的数组。如果页面中不存在该功能,如何忽略该功能? lookup.length>0 不适合我。
function initAutocomplete(selector, lookup) {
$(selector).autocomplete({
deferRequestBy: 0,
autoSelectFirst: true,
lookup: lookup,
onSelect: function (value, data) {
cdSubjectInput.val(value.value);
$(".wikiSubmit").click();
}
});
}
initAutocomplete("#ctl00_ContentPlaceHolder1_txtAssociation", txtAssociation);
initAutocomplete("#ctl00_ContentPlaceHolder1_txtSubject", txtSubject);
【问题讨论】:
标签: javascript jquery arrays optimization