首页 文章

为什么带有“number”类型的html输入允许在字段中输入字母'e'?

提问于
浏览
136

我有以下html5输入元素:

<input type="number">

为什么这个输入允许在输入字段中输入字符'e'?无法输入其他字母字符(如预期的那样)

使用chrome v.44.0.2403.107

看看我的意思:http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number

4 回答

  • 13

    我们可以像下面这样简单

    <input type="number"  onkeydown="javascript: return event.keyCode == 69 ? false : true" />
    
  • 9

    HTML输入数字类型允许“e / E”,因为“e”代表指数,它是数字符号 .

    示例200000也可以写为2e5 . 我希望这有助于感谢您提出这个问题 .

  • 26
    <input type="number" onkeydown="return FilterInput(event)" onpaste="handlePaste(event)"  >
    
    function FilterInput(event) {
        var keyCode = ('which' in event) ? event.which : event.keyCode;
    
        isNotWanted = (keyCode == 69 || keyCode == 101);
        return !isNotWanted;
    };
    function handlePaste (e) {
        var clipboardData, pastedData;
    
        // Get pasted data via clipboard API
        clipboardData = e.clipboardData || window.clipboardData;
        pastedData = clipboardData.getData('Text').toUpperCase();
    
        if(pastedData.indexOf('E')>-1) {
            //alert('found an E');
            e.stopPropagation();
            e.preventDefault();
        }
    };
    
  • 140

    因为这正是the spec所说的应该如何运作 . 数字输入可以接受floating point numbers,包括否定符号和 eE 字符:

    浮点数由以下部分组成,完全按以下顺序排列:可选地,第一个字符可以是“ - ”字符 . “0-9”范围内的一个或多个字符 . 可选地,以下部分,完全按以下顺序:“ . ”字符“0-9”范围内的一个或多个字符可选地,以下部分,按以下顺序排列:“e”字符或“E”字符可选,“ - ”字符或“”字符一个或多个字符在“0-9”范围内 .

相关问题