通过@keyup.native的时间动态监控输入的类型
1.手机号码,只能是数字,如果输入了非数字直接清空
2.身份证号码,除了Xx和数字其余的一律清空
3.基于1.2两种情况下,还有一种是动态创建的字段(也就是v-for出来的),解决方法:先使用split形成字段数组,使用for循环找到最后一个点的前面的字段,方便使用$set更新和渲染页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
setDelMsicStr(field,type){
let props
let len
let value
let newphoestr
let item = this
if (field) {
props = field.split( '.' )
len = props.length
for (let i = 0; i < len - 1; i++) {
item = item[props[i]]
}
if (type== "phone" ){
newphoestr = (item[props[len - 1]]).replace(/([^0-9])+/g, '' )
} else if (type== 'idCard' ){
newphoestr = (item[props[len - 1]]).replace(/([^0-9Xx])+/g, '' )
}
this .$set(item, props[len - 1], newphoestr)
}
},
|
重点:也是使用this.$set()时必须的点
1
2
3
|
for (let i = 0; i < len - 1; i++) {
item = item[props[i]]
}
|
表格限制输入的数字长度,超过限定值,直接显示9999
1
2
3
|
< el-form-item prop = "activStoreSellPrice" >
< el-input type = "number" @ keyup.native = "setRange('form.prdctStoreList.'+scope.$index+'.activStoreSellPrice',99999,0)" v-model.number = "scope.row.activStoreSellPrice" :disabled = "disabled" min = "0" max = "99999999" ></ el-input >
</ el-form-item >
|
重点:
表格的需要获取到行的index(scope.$index)
@keyup.native="setRange('form.prdctStoreList.'+scope.$index+'.activStoreSellPrice',99999,0)"
补充知识:elementUI + vue 输入框只能输入正整数 不能输入字母 e 以及+ - 号
看代码吧~
<el-input :inline="true" v-model="dialogForm.closeTime" onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" type="number"></el-input>
以上这篇vue:el-input输入时限制输入的类型操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/webfullstack/article/details/82987125