html - Angular TextArea 行为绑定到 Ctrl-Enter 键
问题描述
我一直在尝试实现一个自定义<textarea>
行为,其中enter
事件将触发一个函数,ctrl+enter
并将触发<textarea>
.
我一直在尝试通读现有的问题,但其中大多数都在使用 plunker,奇怪的是我无法正确加载它们。
我已经设法让enter
key 提交一些东西,而不是做下一行。但是,当我执行ctrl-enter
keydown 事件时,我似乎无法让 textarea 转到下一行。
有关示例,请参阅此blitzstack。
解决方案
我能够让它工作。希望这将为您提供一个起点。:)
将 triggerFunction 更新为
triggerFunction(event) {
console.log(event);
if (event.ctrlKey && event.key === 'Enter') {
/*
cannot make textarea produce a next line.
*/
var text = document.getElementById("textarea1");
text.value += '\n';
console.log(text);
// text = text.
console.log("next line!");
} else if (event.key === 'Enter') {
event.preventDefault();
console.log("submit!");
}
}
并将html更改为
<div class="form-group">
<label for="textarea1">Example textarea</label>
<textarea
class="form-control"
id="textarea1"
placeholder="Press Ctrl-Enter to do Next Line, otherwise Enter to Send"
(keydown)="triggerFunction($event)"></textarea>
</div>
推荐阅读
- python - (Django) Limited ForeignKey choices by Current User
- angular - Angular bind formcontrolname in sub component
- gridview - Flutter RTL (localization) not working for grid view widget - arabic language
- android - UNO UWP 项目的 Android 启动画面
- c# - Microsoft.TeamFoundationServer.ExtendedClient Nuget 包不安装 Microsoft.TeamFoundation.Common.dll
- sql-server - cpu+主板升级后SQL查询持续时间大增
- python - 无法通过读取文件内容成功解析 python 正则表达式
- java - MySql Java 分离抛出的相同错误
- socket.io - socket.emit 不适用于烧瓶
- vim - Neovim deoplete use python3 as default