Javascript 如何自动完成文本区域中的每一行?

Javascript 如何自动完成文本区域中的每一行?,javascript,jquery,html,Javascript,Jquery,Html,我有一系列的配料: var ingredients = ["Apple", "Orange", "Banana"]; 如何使文本区域中的每一行自动完成一种成分 例如,如果我在第一行输入“Ap”,它应该建议苹果。在下一行,如果我输入“或”,它应该建议橙色 请帮助,并提前感谢。这就是您要找的吗 var键按下=0; var-preventLineBreak=false; var match=“”; var成分=[“苹果”、“橙子”、“香蕉”]; $('textarea').keydown(函数(

我有一系列的配料:

var ingredients = ["Apple", "Orange", "Banana"];
如何使文本区域中的每一行自动完成一种成分

例如,如果我在第一行输入“Ap”,它应该建议苹果。在下一行,如果我输入“或”,它应该建议橙色


请帮助,并提前感谢。

这就是您要找的吗

var键按下=0;
var-preventLineBreak=false;
var match=“”;
var成分=[“苹果”、“橙子”、“香蕉”];
$('textarea').keydown(函数(e){
if(e.keyCode==13&&this.selectionStart!=this.selectionEnd){
$('textarea')[0]。selectionStart=$('textarea')[0]。selectionEnd;
if(preventLineBreak==true){
e、 预防默认值();
preventLineBreak=false;
}
}
按键++;
});
$('textarea').keyup(函数(e){
按键--;
如果(按下键==0){
变量位置=$('textarea')[0].selectionStart;
if(!(/[a-zA-Z0-9-]/.test(String.fromCharCode(e.keyCode)){return false;}
var-haveMatch=false;
var textValue=$('textarea').val();
var searchValueStart=textValue.slice(0,位置).lastIndexOf('\n')+1;
var beforeSearchValue=textValue.slice(0,searchValueStart);
var afterSearchValue=textValue.slice(位置,textValue.length);
var searchvalue=textValue.slice(searchValueStart,位置);
成分。forEach(功能(值){
如果(!haveMatch&&searchvalue&&value.slice(0,searchvalue.length).toLowerCase()==searchvalue.toLowerCase()){
匹配=值;
haveMatch=true;
}
});
如果(匹配){
$('textarea').val(beforeSearchValue+match+afterSearchValue);
$('textarea')[0]。selectionStart=beforeSearchValue.length+searchvalue.length;
$('textarea')[0]。selectionEnd=beforeSearchValue.length+match.length;
match=“”;
preventLineBreak=true;
}  
}
});


您尝试过什么?请告诉我们你的尝试,然后我们会帮助你。创建一个自动建议,可能有一个“工具提示”之类的建议,换行等等,不只是几行代码,你要求我们编写一个完整的插件,这不是一个代码编写服务,你必须联系开发人员,或者自己尝试,当你的尝试失败时询问。你可以使用CTRL-M在你的答案中插入一段有效的代码片段(我用你的代码编辑了你的答案,这样你就可以看到它是如何格式化的)非常感谢!这正是我要找的!很高兴我能帮忙。