Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
215 views
in Technique[技术] by (71.8m points)

element中 阻止输入非数字

问题如题 在使用例如 el-input 组件时阻止输入非数字(数字允许为小数)

我个人尝试了使用的

1.  v-model.number

2.  使用 :value 绑定值 @input 做验证并更新值 

3.  使用 v-model 绑定  行内使用 oninput (输入后进行再次修改)
    
缺陷: 
方法1 : 当输入框为空时可以输入字母

方法2 : 过繁琐  当多个属性需要验证时每个都要绑定一次 @input 

方法3 : 虽然可以到达效果 但是在中文输入法下选择汉字会把所有之前输入的数字全清楚掉 不过大体没问题

image.png

问题: element中 阻止输入非数字,关于这个大家有什么好的做法? 另外 方法3 中的 oninput 是继承到内部标签中代替了vue默认的对input事件处理吗? 在标签内可以使用 @input.native替换 oninput 吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

没什么特别好的办法。

不过你第二种方法其实可以抽一个指令出来,就没那么繁琐了。

如果不是非得用 Input 组件的话,其实可以用 InputNumber 组件的。

另外还可以不在输入时校验,而是放到 Form 里利用表单验证规则来限制。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...