Javascript jQuery将自动完成结果放入textarea
我有一个idJavascript jQuery将自动完成结果放入textarea,javascript,jquery,html,Javascript,Jquery,Html,我有一个idword的input值和一个jQuery函数,如下所示: $(function() { var availableTags = ["register", "malloc", "device", "apre", "fallo"]; $("#word").autocomplete({ source: availableTags }); }); 当我在输入中键入文本时,会调用jQuery函数,并显示结果。这里您可以看到一个示例: 我输入了“al”,它显示了包含这些字母的所有单词(在数组
word
的input
值和一个jQuery函数,如下所示:
$(function() {
var availableTags = ["register", "malloc", "device", "apre", "fallo"];
$("#word").autocomplete({
source: availableTags
});
});
当我在输入中键入文本时,会调用jQuery函数,并显示结果。这里您可以看到一个示例:
我输入了“al”,它显示了包含这些字母的所有单词(在数组中)。这里没问题,但我的问题如下。我希望结果显示在文本区域
,而不是列表中
这意味着malloc
和fallo
必须位于文本区域内
你有什么建议吗?您可以找到带有完整代码的小提琴。是一种小提琴,它将隐藏自动完成菜单项,并用返回的项更新文本区域。请注意,菜单仍然在那里,只是隐藏了,以免破坏自动完成小部件。其思想是使用小部件的响应方法加载具有适当值的textarea。请注意,这将隐藏页面上的所有自动完成菜单,当用户清除输入中的所有tet时,不会清除文本框,但它应该会给您一个开始
CSS隐藏自动完成菜单项:
.ui-autocomplete li { display: none; }
获取文本区域响应的附加代码:
$( "#word" ).autocomplete({
source: availableTags,
response: function( event, ui ) {
$("#testo").val(ui.content.map(function(d) {
return d.label;
}).join("\n"));
}
});
诀窍是覆盖插件的功能
这里有一个快速演示:有点像Microsoft Excel中的自动完成功能--当您键入时,最佳匹配结果会显示在文本框中,当您继续键入时,最佳匹配会发生变化?是的,您是对的。但这不是问题所在,我只希望文本放在文本区域内。我不要名单这是你想要的吗?如果是,请告诉我,这样我就可以把它放在一个答案中:。我也尝试过这样做,但问题是您失去了向上/向下功能,因为
- 元素不再存在。考虑到输入框上方的文本,我假设OP希望保留此功能。总的来说,我认为覆盖renderMenu是一个比我的解决方案更好的选择,只要它不会以任何方式破坏小部件。