业务场景:el-input框框只能输入数字类型
技术:vue2.0 element-ui
问题:使用el-input 可以限制数字,但是针对输入的“e”无法限制,并且输入类似于(0-2)这样的表达式也无法限制,甚至input方法无法捕获.所以想知道为什么输入(0-2)触发不了@input方法?
链接:https://codepen.io/beiwuFirst/pen/QwLZrjK
<el-input
placeholder="请输入内容"
v-model.number="input"
type="number"
@input="inputNumber"
clearable>
</el-input>
{{newText}}
</div>
data() {
return {
input: '',
newText:""
}
},
methods:{
inputNumber(val){
this.newText = val.toString()
}
}
输入0-2,newText这个值都不显示,并且不触发inputNumber函数
如图:
- v-model.number="input" type="number" 感觉限制不住,请大佬能够告知一下,谢谢
- 知道正则表达式可以限制,但是不知道为啥0-2触发不了input方法
<el-input>
组件的v-model.number
会将输入框的值绑定为数字类型。当输入非数字字符(如-
)时,v-model.number
会尝试将其转换为数字,但由于-
不是有效的数字字符,input
的值会变为NaN
,导致后续的输入事件无法正确触发。根据你提供的代码片段,只需要在
inputNumber
事件中,将newText
的赋值移动一下位置即可。