element ui组件 el-input只能数据整数,且设置不能小于0大于10

复制代码
   <el-input 
   		v-model="form.plan" 	
   		type="number" 
   		step="0.5" 
   		min="0" 	max="10" 
   		@keyup.native="proving($event)"  
   		@input="editInput($event,'plan')"  
		placeholder="最高5分" 
   		oninput="if(value>10)value=10;if(value<0)value=0"
  	></el-input>

第一个属性:type="number" input的原生属性,标明input框的类型

第二个属性: step="0.5" input的原生属性,type="number" 时生效, 标明输入字段的合法数字间隔(假如 step="0.5",则合法数字应该是 -0.5、0、0.5、1,以此类推)

第三个属性: min="0" max="10" min 属性规定输入字段所允许的最小值。 max 属性规定输入字段所允许的最大值。 min 属性与 max 属性配合使用,可创建合法值范围。

第四个属性:@keyup.native="proving($event)"

1、onchange事件

通过添加onchange事件我们只能

复制代码
onchange="if(value){value=value.replace(/[^\d]/g,1);if(Number(value)<=0){value=0}} if(Number(value)>10){value=10}"

但是会存在一个问题,如果我们是用在动态编译的表格中,我们虽然让大于10的值变为了10,但在保存的时候传给后端的值会存在问题:如果10000则只会传给后端1;如9999则会变9

2、oninput事件

直接限定了不能大于,可以很好避免上面的问题

复制代码
  oninput="if(value){value=value.replace(/[^\d]/g,1);if(Number(value)<=0){value=0}} if(Number(value)>10){value=10}"

3、最后在表格中使用的效果

复制代码
<el-table-column prop="examineGrade" label="考核评分">
                    <template #default="scope">
                        <el-input type="number" v-model="scope.row.examineGrade" autocomplete="off" size="small"
                            placeholder="0分到10分(包括0和10)"
                            max="10" min="0"
                            onkeypress='return( /[\d]/.test(String.fromCharCode(event.keyCode)))'
                            onchange="if(value){value=value.replace(/[^\d]/g,1);if(Number(value)<=0){value=0}} if(Number(value)>10){value=10}"
                            oninput="if(value){value=value.replace(/[^\d]/g,1);if(Number(value)<=0){value=0}} if(Number(value)>10){value=10}"
                            ></el-input>
                    </template>
 </el-table-column>
相关推荐
aesthetician32 分钟前
Node.js v25 重磅发布!革新与飞跃:深入探索 JavaScript 运行时的未来
javascript·node.js·vim
知识分享小能手3 小时前
uni-app 入门学习教程,从入门到精通,uni-app基础扩展 —— 详细知识点与案例(3)
vue.js·学习·ui·微信小程序·小程序·uni-app·编程
demi_meng4 小时前
reactNative 遇到的问题记录
javascript·react native·react.js
MC丶科5 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
千码君20165 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
90后的晨仔7 小时前
Pinia 状态管理原理与实战全解析
前端·vue.js
EndingCoder7 小时前
WebSocket实时通信:Socket.io
服务器·javascript·网络·websocket·网络协议·node.js
90后的晨仔7 小时前
Vue3 状态管理完全指南:从响应式 API 到 Pinia
前端·vue.js
90后的晨仔7 小时前
Vue 内置组件全解析:提升开发效率的五大神器
前端·vue.js
我胡为喜呀7 小时前
Vue3 中的 watch 和 watchEffect:如何优雅地监听数据变化
前端·javascript·vue.js