gpt4 book ai didi

angularjs - 防止在输入数字中输入字母 'e' 和点

转载 作者:太空狗 更新时间:2023-10-29 13:45:19 25 4
gpt4 key购买 nike

我有一个像这样的简单输入数字:

<input type="number"/>

当尝试输入除数字或字母“e”以外的任何内容时,它不起作用,但当我输入字母“e”时,它起作用了。

我检查了 w3.org 规范,它明确指出可以使用正常记数法(例如:10.2)或科学记数法(例如:1e2)输入 float 。

所以我的问题是:有没有办法阻止用户输入 e 字母和点。换句话说:有没有办法让输入的数字接受ONLY INTEGER NUMBERS

我想通过一个 Angular 指令来做到这一点,我将把它作为属性输入到我的输入数字中,但我真的不知道如何实现它。

编辑 :我想做的是模拟我们现在尝试输入除“e”以外的任何其他字母时所拥有的相同行为 , 或者 ”。”。我想说的是,我不想在输入中看到这个字母(就像现在这样)。

最佳答案

你是正确的,它应该用一个指令来完成。只需创建一个指令并将其附加到 input。该指令应该监听 keypress 和/或 keydown 事件。也可能粘贴事件。如果输入的字符是“e”或点——调用 event.preventDefault();

angular.module('app', [])
.directive('yrInteger', yrInteger);

function yrInteger() {
return {
restrict: 'A',
link: function(scope, element, attrs) {

element.on('keypress', function(event) {

if ( !isIntegerChar() )
event.preventDefault();

function isIntegerChar() {
return /[0-9]|-/.test(
String.fromCharCode(event.which))
}

})

}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<input
type="number"
yr-integer
/>
</div>

关于angularjs - 防止在输入数字中输入字母 'e' 和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241846/

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