一、使用JS限制 input 输入框只能输入纯数字 onkeyup = "value=value.replace(/[^d]/g,'')" 使用 onkeyup 事件,有 bug ,那就是在中文……
onkeyup = "value=value.replace(/[^d]/g,'')"
使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母,所以:不推荐
onchange = "value=value.replace(/[^d]/g,'')"
缺点:使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应
oninput = "value=value.replace(/[^d]/g,'')"
使用 oninput
事件,完美的解决了以上两种问题,他可以即时做出响应,
缺点:当你先输入数字,切输入法中文,开始输入,之前输入的数字会一个个的都消失,直到内容为空
最后,我发现了一个功能实现上最好的:同时使用
onkeyup="this.value=this.value.replace(/D/g,'')" + onafterpaste="this.value=this.value.replace(/D/g,'')"
,唯一不太行的就是 输入英文或中文是输入框都会频闪一下键盘输入的东西,但还是可以接受的
二、VUE使用a-input-number组件限制 input 输入框只能输入纯数字
利用a-input-number组件的controls属性api去控制不显示增减数值的按钮
缺点:当你输入中文或英文时,只有在输入框失去焦点 的时候才会去校验数字
三、VUE使用a-input组件利用type=number限制 input 输入框只能输入纯数字
当input 使用了type='number’后,会出现这个增减数值的按钮,这里建议使用css去控制不显示:
<a-input type='number' />// css部分 需要注意浏览器兼容问题 <style scoped> input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; margin: 0; } /* 火狐 */ input { -moz-appearance: textfield; }
缺点:就是你输入中文或者英文他会直接拼接一个 'e' 或 'E',所以:‘不推荐’
总结:最最最后,个人感觉使用JS的方案四比较合适
<input onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')">
还没有评论呢,快来抢沙发~