【发布时间】:2018-08-23 11:49:57
【问题描述】:
我正在使用EasyAutoComplete 在我的页面上提供自动完成控制。
我将数组作为变量传递给它。该变量是一个数组,我可以使用索引单步执行它,并且对我来说看起来不错。但是当传递给这个插件时,输入控件只有一个选择,看起来像这样......
姓名1,姓名2,姓名3
它应该看起来像这样......
名称1
名称2
名字3
作为个人选择。这是我的代码...
$(document).ready(function () {
var dispatchNames = [];
$('.square').each(function () {
//convert each div with .square class toString
var square = $(this).html().toString();
//grab availability value (if True, tech is available)
var availability = $(this).find('tr:eq(4)').find('td').text();
//grab IP (if exists, tech is online)
online = $(this).find('tr:eq(3)').find('td').text()
if ((availability === "True") && (online.indexOf("10.") === 0)) {
//grab tech name
dispatchNames.push([$(this).find('tr:eq(0)').find('td').text()]);
}
})
var availableTechs = {
data: [dispatchNames],
};
$("#dispatchTechs").easyAutocomplete(availableTechs);
//alert(dispatchNames);
})
我可以将“dispatchNames”作为一个数组单步执行,但是当我将它传递给“availableTechs”时,它是一个长字符串。
我试过拆分字符串等,结果总是一样。
请告知我在通过之前是否需要为“dispatchNames”做一些事情。
谢谢!
编辑
easyAutocomplete 插件的工作原理是这样的......
var options = {
data: ["blue", "green", "pink", "red", "yellow"]
};
$("#basics").easyAutocomplete(options);
我没有为数据提供数组:,而是尝试将数组传递给变量,显然它被视为单个对象。我相信这就是我寻求帮助的原因。
更新
使用匹配...
var availableTechs = {
data: dispatchNames,
list: {
match: {
enabled: true
}
}
};
$("#dispatchTech").easyAutocomplete(availableTechs);
})
这是使用 match 时的控制台错误:
7jquery.easy-autocomplete.js:64 Uncaught TypeError: element.search is not a function
at Object.method (jquery.easy-autocomplete.js:64)
at match (jquery.easy-autocomplete.js:653)
at findMatch (jquery.easy-autocomplete.js:630)
at proccessData (jquery.easy-autocomplete.js:613)
at ListBuilderService.processData (jquery.easy-autocomplete.js:455)
at loadData (jquery.easy-autocomplete.js:1338)
at HTMLInputElement.<anonymous> (jquery.easy-autocomplete.js:1308)
at HTMLInputElement.dispatch (jquery-3.3.1.js:5183)
at HTMLInputElement.elemData.handle (jquery-3.3.1.js:4991)
【问题讨论】:
-
试试
$("#dispatchTechs").easyAutocomplete(availableTechs.data.join(" "))。这将从一个带有空格的数组创建一个字符串,例如名称1 名称2 名称3 -
您好。我想我想要相反的?我不想创建一个字符串。我需要一个项目列表,而不是一个字符串。谢谢!
-
我看到了混乱的地方,并修复了我的帖子。所需的输出是标准的选择列表。基本上,我传递给输入控件的数组应该是一个可供选择的项目列表。相反,它将数组中的所有项目作为一个字符串,因此列表中只有一个选择。我希望这是有道理的。谢谢!
-
哦,我知道你需要什么了。只要通过
var availableTechs = { data: dispatchNames, }; -
太棒了!谢谢!这就对了!你能解释一下那里发生了什么吗?看起来不是在
data:之后将dispatchNames作为数组传递,而是通过data: dispatchNames,...分隔声明?
标签: jquery arrays string easyautocomplete