由于需求需要对 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,'')"