当前位置: 首页 > 面试题库 >

防止在输入数字中键入字母“ e”和点

安高翰
2023-03-14
问题内容

我有一个简单的输入数字,例如:

<input type="number"/>

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

我检查了w3.org规范,它清楚地表明可以使用常规表示法(例如:10.2)或科学表示法(例如:1e2)来键入浮点数。

所以我的问题是:有没有一种方法可以防止用户键入e字母和点。用另一种方式说:有没有一种方法可以使输入数字 接受 整数

我有一个用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>


 类似资料:
  • 问题内容: 如果输入不是有效数字,则使用将导致事件侦听器内部返回空字符串。 但是,无效字符仍显示在输入中。 有什么方法可以从事件侦听器中获取实际 显示 的值,包括无效字符? 我的最终目标是防止用户在字段中实际键入任何非数字字符。我需要使用以便移动设备使用数字虚拟键盘。我的目标是做这样的事情上,但这并不因为如果无效字符键入工作,从阅读的回报。 问题答案: 如果您不喜欢传入键值,请尝试阻止默认行为:

  • 问题内容: 我有以下html5输入元素: 为什么此输入允许在输入字段中输入字符“ e”?没有其他字母字符可以输入(按预期方式) 使用chrome v.44.0.2403.107 问题答案: 因为这正是规范所说的应该工作的方式。输入的数字可以接受浮点数,包括负号和或字符(其中指数是或后面的数字): 浮点数按以下顺序由以下部分组成: 可选地,第一个字符可以是“ ”字符。 “ ” 范围内的一个或多个字符

  • 本文向大家介绍iOS 键盘输入限制(只能输入字母,数字,禁止输入特殊符号),包括了iOS 键盘输入限制(只能输入字母,数字,禁止输入特殊符号)的使用技巧和注意事项,需要的朋友参考一下 首先我们要设置一下键盘类型 textFiled.keyboardType = UIKeyboardTypeASCIICapable;  (根据个人喜好设置键盘) 然后我们要设置textfield的代理<UITextF

  • 我想要功能 只需输入--EditText返回并提交文本 Shift+Enter--在EditText中新建行 在layout.xml中:

  • 我有一个脚本,可以防止用户在输入中输入希伯来语,并强制用户输入英语 我想通过以下方式获得机会: 我想阻止用户键入英语,并强制用户键入希伯来语。 以下是HTML: 以下是Javascript(jquery 1.9.1): 希伯来文字符从1488年到1522年。看这里<但是我不能让它们正常工作。 你知道怎么处理吗? 这里有一个现场直播:JSfiddle

  • 我在firefox和internet Explorer中的有一些问题。在firefox和IE中键入字符将是数字,但文本也可以键入。在Chrome中工作完美。是否可以不使用进行修复。提前致谢