input输入框限制只能输入数字

昨天博主接到一个需求说form表单里面的input输入框有些你得给它限制一下,不要比如有些限制一下只能让他输入数字,不能让客户输入文字或者英文

我这边给大家提供两种方法来实现这个功能,当然,我把相关情况也在这给大家解释一下现象:

1.相信很多前端框架都集成了第三方的组件库,我这边例举一下我项目中用到的iview

iview有一个数字输入文本框:
<InputNumber :max="10" :min="1" v-model="value1"></InputNumber>

这是最简单的一种方法,但是很多情况下由于样式等等其他因素,导致你无法使用组件库的现用组件功能,这边我给大家提供了第二种方式

2.正则表达式判断法

第二种方式就是正则表达式判断法:
oninput="this.value=this.value.replace(/^\D*([0-9]\d*\.?\d*)?.*$/,'$1')"

注意:正则表达式判断法需要使用原生的input输入框,用iview的输入框或者element的输入框应该都没不起效果的

这个正则表达式的意思就是现在英文和文字的输入

大家可以看到 oninput这个参数,我给大家解释一下:

鼠标事件

  1. onclick: 当用户点击某个对象时调用的事件句柄。
  2. oncontextmenu: 在用户点击鼠标右键打开上下文菜单时触发
  3. ondblclick: 当用户双击某个对象时调用的事件句柄。
  4. onmousedown: 鼠标按钮被按下。
  5. onmouseenter: 当鼠标指针移动到元素上时触发
  6. onmouseleave: 当鼠标指针移出元素时触发
  7. onmousemove: 鼠标被移动。
  8. onmouseover: 鼠标移到某元素之上。
  9. onmouseout: 鼠标从某元素移开。
  10. onmouseup: 鼠标按键被松开。

键盘事件

  1. onkeydown: 某个键盘按键被按下。
  2. onkeypress: 某个键盘按键被按下并松开
  3. onkeyup: 某个键盘按键被松开。

框架/对象(frame/object)事件

  1. onabort: 图像的加载被中断。 ( )
  2. onbeforeunload: 该事件在即将离开页面(刷新或关闭)时触发
  3. onerror: 在加载文档或图像时发生错误。 ( , 和 )
  4. onhashchange 该事件在当前 URL 的锚部分发生修改时触发。
  5. onload 一张页面或一幅图像完成加载。
  6. onpageshow 该事件在用户访问页面时触发
  7. onpagehide 该事件在用户离开当前网页跳转到另外一个页面时触发
  8. onresize 窗口或框架被重新调整大小。
  9. onscroll 当文档被滚动时发生的事件。
  10. onunload 用户退出页面。 ( 和 )

表单事件

  1. onblur: 元素失去焦点时触发
  2. onchange: 该事件在表单元素的内容改变时触发( , , , 和 )
  3. onfocus: 元素获取焦点时触发
  4. onfocusin: 元素即将获取焦点时触发
  5. onfocusout: 元素即将失去焦点时触发
  6. oninput: 元素获取用户输入时触发
  7. onreset: 表单重置时触发
  8. onsearch: 用户向搜索域输入文本时触发 ( <input=“search”>)
  9. onselect: 用户选取文本时触发 ( 和 )
  10. onsubmit: 表单提交时触发

剪贴板事件

  1. oncopy: 该事件在用户拷贝元素内容时触发
  2. oncut: 该事件在用户剪切元素内容时触发
  3. onpaste: 该事件在用户粘贴元素内容时触发

打印事件

  1. onafterprint: 该事件在页面已经开始打印,或者打印窗口已经关闭时触发
  2. onbeforeprint: 该事件在页面即将开始打印时触发

拖动事件

  1. ondrag: 该事件在元素正在拖动时触发
  2. ondragend: 该事件在用户完成元素的拖动时触发
  3. ondragenter: 该事件在拖动的元素进入放置目标时触发
  4. ondragleave: 该事件在拖动元素离开放置目标时触发
  5. ondragover: 该事件在拖动元素在放置目标上时触发
  6. ondragstart: 该事件在用户开始拖动元素时触发
  7. ondrop: 该事件在拖动元素放置在目标区域时触发

多媒体事件

  1. onabort: 事件在视频/音频(audio/video)终止加载时触发。
  2. oncanplay: 事件在用户可以开始播放视频/音频(audio/video)时触发。
  3. oncanplaythrough: 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。
  4. ondurationchange: 事件在视频/音频(audio/video)的时长发生变化时触发。
  5. onemptied: 当期播放列表为空时触发
  6. onended: 事件在视频/音频(audio/video)播放结束时触发。
  7. onerror: 事件在视频/音频(audio/video)数据加载期间发生错误时触发。
  8. onloadeddata: 事件在浏览器加载视频/音频(audio/video)当前帧时触发触发。
  9. onloadedmetadata: 事件在指定视频/音频(audio/video)的元数据加载后触发。
  10. onloadstart: 事件在浏览器开始寻找指定视频/音频(audio/video)触发。
  11. onpause: 事件在视频/音频(audio/video)暂停时触发。
  12. onplay: 事件在视频/音频(audio/video)开始播放时触发。
  13. onplaying: 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。
  14. onprogress: 事件在浏览器下载指定的视频/音频(audio/video)时触发。
  15. onratechange: 事件在视频/音频(audio/video)的播放速度发送改变时触发。
  16. onseeked: 事件在用户重新定位视频/音频(audio/video)的播放位置后触发。
  17. onseeking: 事件在用户开始重新定位视频/音频(audio/video)时触发。
  18. onstalled: 事件在浏览器获取媒体数据,但媒体数据不可用时触发。
  19. onsuspend: 事件在浏览器读取媒体数据中止时触发。
  20. ontimeupdate: 事件在当前的播放位置发送改变时触发。
  21. onvolumechange: 事件在音量发生改变时触发。
  22. onwaiting: 事件在视频由于要播放下一帧而需要缓冲时触发。

动画事件

  1. animationend: 该事件在 CSS 动画结束播放时触发
  2. animationiteration: 该事件在 CSS 动画重复播放时触发
  3. animationstart: 该事件在 CSS 动画开始播放时触发

过渡事件

  1. transitionend: 该事件在 CSS 完成过渡后触发。

其它事件

  1. onmessage: 该事件通过或者从对象(WebSocket, Web Worker, Event Source 或者子 frame
    或父窗口)接收到消息时触发
  2. onmousewheel: 已废弃。 使用 onwheel 事件替代
  3. ononline: 该事件在浏览器开始在线工作时触发。
  4. onoffline: 该事件在浏览器开始离线工作时触发。
  5. onpopstate: 该事件在窗口的浏览历史(history 对象)发生改变时触发。
  6. onshow: 该事件当 元素在上下文菜单显示时触发
  7. onstorage: 该事件在 Web Storage(HTML 5 Web 存储)更新时触发
  8. ontoggle: 该事件在用户打开或关闭 元素时触发
  9. onwheel: 该事件在鼠标滚轮在元素上下滚动时触发

给大家罗列了所有的事件,建议大家还是去了解一下,博主这边刚开始用的是onkeyup事件,后面发现mac可以实现input输入框限制只能输入数字,但是在普通的windows系统的电脑上,你输入汉字回车的话英文还是可以输入,后面经过反复的测试发现oninput满足需求,但是在mac上会出现一点点闪动的效果,不影响操作!

发布了34 篇原创文章 · 获赞 0 · 访问量 3634

猜你喜欢

转载自blog.csdn.net/qq_43469899/article/details/103627950