gpt4 book ai didi

angularjs - 使用angularjs禁用数字输入的箭头键

转载 作者:行者123 更新时间:2023-12-01 10:45:35 29 4
gpt4 key购买 nike

我想禁用通过 angularjs 指令(或其他方式)输入数字的上下键。
注意:我不想将输入类型更改为文本,因为我被要求不要这样做。我也已经删除了微调器。我是 Angular 的新手,所以不太了解它。我搜索了所有我能找到的链接,但它们主要是关于隐藏微调器而不是关于禁用箭头键。我从其他链接获得了这段代码。这将禁用鼠标滚轮。如果可以对此进行一些更改,那就太好了。

module.directive('input',function() {
return {
restrict: 'E',
scope: {
type: '@'
},
link : function (scope, $element) {
if (scope.type == 'number') {
$element.on('focus', function () {
angular.element(this).on('keyup', function (e) {
e.preventDefault();
});
});
$element.on('blur', function () {

angular.element(this).off('keyup');
});
}
}
}
});

最佳答案

如果你想为所有 input[number] 元素全局禁用向上/向下箭头键:

$(document).bind('keydown', function(event) {
var target = event.srcElement || event.target;
var tag = target.tagName.toUpperCase();
var type = target.type.toUpperCase();
if (tag === 'INPUT' && type === 'NUMBER' &&
(event.keyCode === 38 || event.keyCode === 40)) {
event.preventDefault();
}
});

或者您可以使用指令将其绑定(bind)到单个元素:

.directive('disableArrows', function() {

function disableArrows(event) {
if (event.keyCode === 38 || event.keyCode === 40) {
event.preventDefault();
}
}

return {
link: function(scope, element, attrs) {
element.on('keydown', disableArrows);
}
};
});

模板:

 <input type="number" disable-arrows />

关于angularjs - 使用angularjs禁用数字输入的箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26696067/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com