输入标记永远不会显示非数字字的面

时间:2015-01-25 14:27:52

标签: javascript html input digit

在html中,我想只输入输入允许数字。 我知道有一个onkey(向上|按下|向下)事件,但是如果你尝试过,那么你知道你先按下的一个数字会显示它的面部一秒钟看起来不漂亮。 那么如何制作它(标题中的问题)?----这意味着如果你用键盘按下一个非数字字,那么输入标签什么都不响应。 我想要抓住一个单词产生并且即将在输入标签中显示它的面部,但我甚至没有找到关于它的文档。

2 个答案:

答案 0 :(得分:1)

keyup事件仅在释放键盘键后才会触发,然后该角色已经进入textarea / input元素。

另一方面,

keydown在按下键时立即触发,如果您取消该事件,则首先不会将字符插入输入字段。

请务必小心处理此问题,这样您就不会消除用户可能需要使用输入字段的其他按键操作,例如f.e.光标键或ins / del等。

(并且您可能希望在提交或以其他方式使用之前添加值的其他验证/清理,因为该值可能以其他可能的方式进入输入字段,而关键事件无法捕获,例如fe paste触发通过上下文菜单。)

答案 1 :(得分:0)

你不能100%。我总是可以禁用或编辑您编写的任何JavaScript代码,因此您最好不要仅依靠此检查进行验证,也始终验证服务器端。

至于做客户端验证,现代浏览器内置了该功能,您使用type上的<input>属性并将其设置为number,如下所示:

<form>
  <p>Try to enter a non number and submit.</p>
  <input type="number">
  <button>Submit</button>
</form>