vue的elmentui的input框限制只能输入正数
时间: 2023-09-02 19:09:54 浏览: 94
浅谈vue限制文本框输入数字的正确姿势
你可以结合使用element-ui的el-input组件和vue的自定义指令来限制只能输入正数。具体实现如下:
1. 在el-input组件上添加v-positive-number指令,代码如下:
```html
<el-input v-positive-number v-model="num"></el-input>
```
2. 在vue中定义v-positive-number指令,代码如下:
```javascript
Vue.directive('positive-number', {
bind: function (el, binding, vnode) {
const input = el.querySelector('input');
input.oninput = function () {
input.value = input.value.replace(/[^\d.]/g, ''); // 只允许输入数字和小数点
input.value = input.value.replace(/^\./g, ''); // 第一个字符不能为小数点
input.value = input.value.replace(/\.{2,}/g, '.'); // 不能出现多个小数点
input.value = input.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); // 只能有一个小数点
input.value = input.value.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 保留两位小数
if (input.value < 0) {
input.value = '';
}
}
}
})
```
在上面的指令中,我们绑定了一个oninput事件,对输入框中的内容进行处理,使其只能输入数字和小数点,并且只能保留两位小数。同时,如果输入的数值小于0,就将输入框清空。这样就可以限制只能输入正数了。
阅读全文