如何限制或限制用户只在文本框中输入最多五个字符?
以下是输入字段作为我的表单的一部分:
<input type="text" id="sessionNo" name="sessionNum" />
Run Code Online (Sandbox Code Playgroud)
它是使用像maxSize之类的东西吗?
我理解为什么数字输入允许"e"或"E",但我很困惑为什么它允许多个小数.
如果查看有效浮点数的规范,可以得到:
如果字符串包含以下内容,则该字符串是有效的浮点数:
- 可选地," - "(U + 002D)字符.
- 按给定顺序执行以下一项或两项操作:
- 一系列一个或多个ASCII数字.
- 一个单一的"." (U + 002E)字符.
- 一系列一个或多个ASCII数字.
- 可选:
- 可以是"e"(U + 0065)字符或"E"(U + 0045)字符.
- 可选地," - "(U + 002D)字符或"+"(U + 002B)字符.
- 一系列一个或多个ASCII数字.
我在这里看到的所有内容都表明输入中只允许一个小数点,并且在指定带有"e"的指数之前必须包含小数,并且无论如何都只能有一个"e".
然而,允许这样的输入:
等等.
在IE 11,这将让我在任何字符串我什么,但除非它是一个"有效"号码的类型.value是"".在这种情况下, 1......e是有效的,但eeeeee不是.如果IE确定该值无效,则在远离输入的焦点上,显示屏空白,从而阻止用户修改现有输入.
在Chrome 51中,它只会让我输入数字,+/ - ,e/E和".".当我检查输入的值,如10.0. 额外的十进制,它仍然返回值10.0,但如果我键入10.0.0或10..字符串恢复为空.Chrome将保留显示无效输入.
当字符串变空时,它会阻止对输入进行进一步的验证检查并提供有用的用户反馈.
那么,为什么在数字输入字段中允许多个小数开始,为什么它们在浏览器之间如此奇怪地处理呢?