vue限制input只能输⼊正数的操作在某些项⽬中 input 框只能输⼊数字,可以⽤以下办法:
先在标签上绑定上 @input 事件来监听标签的值变化,通过正则来改变输⼊的值。
<input
class="keep_input"
v-number-only
v-model="w.fileOrder"
@input="w.fileOrder = Number($event.place(/\D+/, ''))"
/>
第⼆部封装个⾃定义指令放在标签上!
directives: {
numberOnly: {
bind: function(el) {
el.handler = function() {
el.value = Number(place(/\D+/, ''))
}
el.addEventListener('input', el.handler)
},
unbind: function(el) {
}
}
},
接下来就可以去页⾯看效果了,只能输⼊数字且只是正数!
附上 element 的 input 样式代码
.keep_input {
-webkit-appearance: none;
background-color: #fff;
background-image: none;
border-radius: 4px;
border: 1px solid #dcdfe6;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #606266;
display: inline-block;
font-size: inherit;
outline: 0;
padding: 0 15px;
-webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
height: 30px;
line-height: 30px;
text-align: left;
}
.
keep_input:focus {
border-color: #54a6de;
outline: 0;
}
补充知识:记录el-input type=number限制长度el-input使⽤
如下所⽰:
<el-input type="number"
oninput="if(value.length>10)value=value.slice(0,10)"
@native="query()"
onKeypress="return(/[\d\.]/.test(String.fromCharCode(event.keyCode)))"
:max="99999999">
</el-input>
input标签placeholder属性oninput 是个⾃定义事件在事件⾥⾯获取输⼊的数字长度,来进⾏判断如果⼤于规定长度就进⾏剪切。native 是个键盘回车事件,当按下Enter键时触发query()事件。
max为输⼊框的最⼤值,如果input的type=number那么输⼊框内是输⼊不了字符的。
number框解决输⼊e的问题
主要原因是:e在数学上代表的是⽆理数,是⼀个⽆限不循环的⼩数,其值约为2.7182818284,所以在输⼊e的时候,输⼊框会把e当成⼀个数字看待。
可以采⽤下⾯的⽅式来避免这个BUG,在input标签中添加如下属性:
onKeypress=“return(/[\d.]/.test(String.fromCharCode(event.keyCode)))”
<el-input placeholder="请输⼊密码" v-model="input" :show-password="true"></el-input>
show-password 加上这个属性输⼊字符进⾏隐藏⼀般⽤于密码框使⽤
记录问题!
以上这篇vue 限制input只能输⼊正数的操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。