vue自定义指令限制输入框输入值的步骤与完整代
编程学习 2021-07-04 14:06www.dzhlxh.cn编程入门
这篇文章主要给大家介绍了关于vue自定义指令限制输入框输入值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
需求
前端开发过程中,经常遇到表单校验的需求,比如校验用户输入框的内容,限制用户只能输入数字。
本文内容基于 element-ui,el-form 组件可以绑定 model、rule 用于表单内容校验,但如果有多个表单多个输入框那就得写很多个 rule,虽然方法可以通用可是使用起来也是比较繁琐的,可通过自定义执行实现一次注册,多次使用。
Vue 自定义指令
我们使用 el-input 作为表单的输入框
1. 先注册一个自定义指令
import Vue from 'vue';
Vue.directive('LimitInputNumber', {
bind(el) {
# do something
},
});
2.使用自定义指令
直接在组件内绑定 v-limit-input-number 指令
<el-input v-limit-input-number />
3.指令内部校验
onkeypress 事件
onkeypress 事件会在键盘按键被按下并释放一个键时发生
可在事件触发时检测若输入的值不为数字,直接返回 fales
Vue.directive('LimitInputNumber', {
bind(el) {
el.onkeypress = (event) => {
return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8;
};
},
});
但该事件存在一个问题,就是在中文输入法的时候无法触发事件,导致用户可以输入中文
oninput 事件
oninput 事件在用户输入时触发
可在事件触发时进行过滤,过滤掉那些不为数字的值,并重新绑定到输入框上,解决了中文输入法下的问题
Vue.directive('LimitInputNumber', {
bind(el) {
el.oninput = () => {
el.children[0].value = el.children[0].value.replace(/\D/ig, '');
};
},
});
完整代码
import Vue from 'vue';
Vue.directive('LimitInputNumber', {
bind(el) {
el.onkeypress = (event) => {
return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8;
};
el.oninput = () => {
el.children[0].value = el.children[0].value.replace(/\D/ig, '');
};
},
});
总结
到此这篇关于vue自定义指令限制输入框输入值的文章就介绍到这了,更多相关vue自定义指令限制输入框输入值内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
上一篇:谈谈JavaScript令人迷惑的==与+
下一篇:JS性能优化实现方法及优点进行
编程语言
- Win10 PC创意者更新慢速版15048改进内容与已知问题
- 用纯CSS3实现网页中常见的小箭头
- 神舟笔记本问题集锦
- Bellnames常用操作说明
- 揭秘手机淘宝搜索排序的影响因素
- XHTML入门学习教程-网页Head和DTD
- 笔记本光驱保养常用知识
- hzhost虚拟主机系统致命漏洞
- 电脑无线网络出现红色叉叉无线网卡打不开的六
- 16项评比不得不看 机箱哪些功能最实用
- AI怎么绘制一个呲牙的qq表情-
- 红帽指点杆机械键盘 TEX Yoda上手体验测评
- 笔记本电脑保养常识有哪些-笔记本保养常识总结
- cdr怎么设计圆角矩形效果的图标-
- 在XSLT样式表中声明命名空间小结
- Fireworks教程-常用操作技巧总结