elementui input 只能输入数字并且限制最大值

<el-input type="number" οninput="if(value.length>10)value=value.slice(0,10)" @keyup.enter.native="query()" onKeypress="return(/[\d\.]/.test(String.fromCharCode(event.keyCode)))" :max="99999999"> </el-input>

 

oninput 是个自定义事件 在事件里面获取输入的数字长度,来进行判断如果大于规定长度就进行剪切。
keyup.enter.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 加上这个属性输入字符进行隐藏一般用于密码框使用

 

  1. <el-table-column label="得分">

  2. <template slot-scope="scope">

  3. <div v-if="queryObj.isResult != undefined">{{scope.row.getDetailScore}}</div>

  4. <div v-else>

  5. <el-input

  6. type="number"

  7. size="small"

  8. v-model.number="scope.row.getDetailScore"

  9. @input="numberChange($event,scope.$index)"

  10. @change="numberChange($event,scope.$index)"

  11. ></el-input>

  12. </div>

  13. </template>

  14. </el-table-column>

  15. js:

  16. numberChange(val, index) {

  17. let integer = /^(-|\+)?\d+$/; //输入整数(包括0)的正则,解决不能输入负号问题

  18. if (integer.test(val)) {

  19. if (this.tableData[index].thirdScore == 0) {

  20. this.tableData[index].getDetailScore = parseInt(val);

  21. } else {

  22. this.tableData[index].getDetailScore = parseInt(val);

  23. this.$nextTick(() => {

  24. let newVal = Math.min(parseInt(val), this.tableData[index].thirdScore);

  25. this.tableData[index].getDetailScore = newVal;

  26. });

  27. }

  28. }

  29. },

ElementUIinput组件可以通过一些属性和事件来限制只能输入数字或小数。其中,可以使用oninput事件结合JavaScript代码来实现限制输入的功能。例如,可以使用isNaN函数判断输入是否为数字,如果不是数字,则将设为null。同时,可以使用indexOf函数判断输入中是否包含小数点,如果包含小数点,则可以使用slice函数截取小数点前三位。具体代码如下所示: ```html <el-form-item label="参数输入" prop="g"> <el-input v-model="queryParams.g" placeholder="请输入第七参数" clearable size="small" oninput="if(isNaN(value)) { value = null } if(value.indexOf('.') > 0) { value = value.slice(0, value.indexOf('.') + 3) }" @keyup.enter.native="handleQuery" /> </el-form-item> ``` 另外,还可以使用正则表达式来限制输入的内容。可以在input组件上绑定一个onkeyup事件,通过正则表达式`/[^\d^\.]/g`匹配所有非数字内容,并将其替换为空字符串。这种方式不会影响任何属性。具体代码如下所示: ```html <el-form-item label="参数输入" prop="g"> <el-input v-model="queryParams.g" placeholder="请输入第七参数" clearable size="small" onkeyup="value = value.replace(/[^\d^\.]/g, '')" @keyup.enter.native="handleQuery" /> </el-form-item> ``` 另外,如果想去除默认样式,可以使用CSS样式来修改。具体代码如下所示: ```html <style> input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; } input[type="number"] { -moz-appearance: textfield; } </style> ``` 通过以上方法,可以实现ElementUIinput组件只能输入数字或小数的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值