gpt4 book ai didi

javascript - 是否可以在 AngularJS 中模拟按键?

转载 作者:行者123 更新时间:2023-11-30 14:12:24 26 4
gpt4 key购买 nike

每当为十进制输入而不是文本按下逗号 (,) 时,我需要在输入上写点 (.)。我需要以某种方式模拟 Keypress 或 KeyDown 编程。

我尝试了所有答案 here但它们都不起作用:

我为输入编写了以下指令代码:

app.directive('ngKommatopoint', function() {
return {
link : function($scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 188) {
element.trigger(
$.Event( 'keydown', { keyCode:190,which:190})
);
}
});
},
restrict: 'A'
}; });

此解决方案不起作用,因为它从不调用“Dot”事件。知道为什么它不起作用吗?

最佳答案

在 ngModelController 上使用解析器/格式化器来拦截用户输入。

您的解决方案将跳过复制/粘贴,但解析器/格式化程序不会。

https://dzone.com/articles/parsers-and-formatters-custom

您可以处理模型的所有更改并根据需要进行解析

更新

这是 fiddle :https://jsfiddle.net/gudzdanil/un56mjez/2/


app.directive('nodot', function(){
return{
require:'ngModel',
link: function(scope, elem, attrs, ctrl){
ctrl.$parsers.unshift(replace);
function replace(val){
var newVal = val.replace(/,/g, '.');
ctrl.$viewValue = newVal;
ctrl.$render()
return newVal;
}
}
};
});

关于javascript - 是否可以在 AngularJS 中模拟按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183169/

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