在 el-input 中添加 onkeyup 使用中文输入法导致验证失效

由于需求需要对 el-input 添加输入校验,只允许用户输入数字,其他内容输不上去,我采用了在中添加onkeyup="value=value.replace(/[^\d]+/g,'')"来对输入进行校验

οnkeyup="value=value.replace(/[^\d]+/g,'')"

当输入为非数字时会被""替换掉,但是使用中文输入法时,虽然也能过滤非数字,但是过滤之后表单的非空验证不通过

查阅很多资料后改为:

// value.replace前为<el-input>绑定的变量名
@input="value => formData.value=value.replace(/[^\d]+/g,'')"

之前只是将 el-input 中的值替换为空,在中文输入法的情况下替换后,里面的值变为了一个新的变量,表单校验监听不到这个新的变量,所以会不通过校验,更改后将替换后的变量赋给 el-input 绑定的变量,再把它回调给 el-input 的 value,这样就能监听到这个替换后的变量。

针对可输入数字、字母不会有类似的问题,直接可使用

oninput="value=value.replace(/[^a-z0-9_-]+/g,'')"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值