我想点击 Ctrl + Enter 提交文字,但我找不到如何做到这一点。 我的代码100%适用于Enter或 Ctrl 单独的按键,例如:
<div ng-show="hiddenFriendId != null" ng-keydown="$event.which === 13 && sendMessage()">
<textarea id="messageText" placeholder="Input your message here. Use Ctrl + Enter to send your message" cols="40" rows="3" my-maxlength="3" ng-model="messageText"></textarea>
</div>
但是我正在尝试类似的东西 -
<div ng-show="hiddenFriendId != null" ng-keydown="($event.which === 13 && $event.which === 17) && sendMessage()">
它不起作用(方法执行开始点击没有 Ctrl 的Enter)。 任何人都可以帮助我吗?我发现只有一个按键的例子。
答案 0 :(得分:2)
您可以使用
// Inside your controller
public keyDownEvent = ($event) => {
if ($event.ctrlKey && $event.keyCode === 13) {
this.submit();
};
}
<!-- In your template -->
<input type="text" value="inputValue" ng-keydown="$panelRow.keyDownEvent($event)">
答案 1 :(得分:0)
我有同样的问题,在https://codepen.io/y__b__y/pen/afFec
找到了一个简单的解决方案您所要做的就是在属性上创建自定义指令并使用它。 它对我来说就像老板一样:
<强>指令强>
var app = angular.module('yourApp', []);
app.directive('enterSubmit', function () {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
elem.bind('keydown', function(event) {
var code = event.keyCode || event.which;
if (event.ctrlKey && code === 13) {
if (!event.shiftKey) {
event.preventDefault();
scope.$apply(attrs.enterSubmit);
}
}
});
}
}
});
<强> HTML 强>
<textarea enter-submit="sendMessage()" /></textarea>
希望这有帮助!
答案 2 :(得分:0)
如果您需要 Ctrl + Enter ,您可以使用
if (($event.code == "Enter" && $event.which === 10))
如果您需要 Shift + Enter ,您可以使用
if (($event.shiftKey && $event.which === 13))
答案 3 :(得分:0)
无需编写代码行,只需插入代码段
<input type="text" placeholder="Write a comment" ng-model="data" ng-keypress="($event.charCode==10)? myfunc() : return">
在下面的链接
中尝试将以上代码用于 Ctrl + Enter 新闻事件