需求:输入非数字的自动过滤掉,小数部分大于2位数的自动过滤,整数大于6位数的自动过滤,可输入负数。
问题:项目用了element-ui,这里用了blur光标离开事件,checknumMinusp2是公用方法,比如输入非法的数字"6yyy",光标移走文本框文字确实变成6了,这时候绑定的minPrice仍然为6yyy,如何让绑定的元素minPrice更新(checknumMinusp2为公用方法,就无法写固定的的minPrice)
<el-input v-model="minPrice" placeholder="" @blur="checknumMinusp2($event)"></el-input>
data() {
return {
minPrice: '', //
}
},
/*
*负数整数和小数点 为小数字点2位(公用方法)
*/
Vue.prototype.checknumMinusp2 = function(e) {
var reg = /^(-?[1-9]\d{0,5}\.\d{1,2}|-?0\.\d{1,2}|-?[1-9]\d{0,5}|0)/;
if(reg.test(e.target.value)){
e.target.value = e.target.value.match(reg)[0]
}else{
e.target.value = ''
}
}
相关分类