通过计算属性,处理一下输入的值(具体写法可以看下面代码的注释)
computed: {
techInputData: { // 科技人员input输入框输入的值
get() {
var value = this.tableData.scienceStaffNumPer // 将输入框的值赋值给value
if (Number(value)!==parseFloat(value)) { // 判断输入的是否是数字,如果不是,返回空
return ''
}
if (value < 0) { // 如果输入的值小于0
return 0;
} else if (value >= 100) { // 如果输入的值大于等于100
return 100;
} else {
return value.toString().match(/^\d+(?:\.\d{0,2})?/) // 只能输入小数点后两位
}
},
set(val) {
this.tableData.scienceStaffNumPer = val; // 重新将计算属性处理过的值,赋值给这个input
},
},
}
此代码只能,输入0-100之间的数字,其他字符,均无法输入
正整数:
<el-input v-model="num" type="number" placeholder="请输入" oninput="if(!/^[0-9]+$/.test(value)) value=value.replace(/\D/g,'');if(value>100)value=100;if(value<0)value=null" />
保留小数点两位:
<el-input
v-model="money"
type="number"
clearable
placeholder="请输入固定金额"
oninput="if(!/^[0-9]+$/.test(value)) value=value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');if(value>100)value=100;if(value<0)value=null;if(value<0)value=null;if((value[0] == 0 && value[1] > 0) || value == '00')value=value.slice(1);"
/>