el-input无法输入情况汇总(记录一下)

本文总结了在Vue.js项目中遇到的三种输入框无法输入的问题:一、表单校验导致的输入失效;二、oninput事件限制输入导致的问题;三、表格组件数据绑定过深引起的显示异常。解决方案包括正确预声明表单数据,合理处理输入事件及及时刷新数组模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、有加form的表单校验,然后输入框无法数据的情况

  1. 整个页面是一个form表单嵌套着
  2. 红色部分是看情况增加,如果不点新增那它也可以没有,点了新增里面的input就成了必填
  3. 这里data 声明里是这样的,addAccountPOS 数组就是红色方框部分就是绑定的数组做了循环
		  subForm: {
                updateSupplierName: '',
                billsType: 'UPDATE',
                accountVOs: [], // 结算账号
                addAccountPOS: [], // 新增的结算账号
            },
           // 页面
           <el-form-item
                label="开户行信息:"
                :prop="`addAccountPOS[${index}].bankName`" :rules="[{ required: true, message: '请输入开户行信息', trigger: 'blur' }]"
            >
                <el-input size="mini" style="width:50%;" v-model="item.bankName" @input="e => item.bankName = validSe(e)" placeholder="请输入开户行信息" maxlength="30">
                </el-input>
           </el-form-item>

在这里插入图片描述

情况

  1. 输入框无法输入,表单校验一致提示是必填的,类似于触发了刷新dom($forceUpdate)的情况才可以在input框看到输入的值

原因

  1. 如果进行表单验证,绑定了:model=“subForm”,那么这下面需要验证的内容都需要直接先声明上。
  2. 例如addAccountPOS: [{name: ‘’, account: '}],先这么声明(不能addAccountPOS:[], 后期再给他push对象),这样页面上绑定的:prop="addAccountPOS[${index}].bankName"才能正常识别并使用。

二、使用了οninput=“value=value.replace(/[^\d]/g,‘’)”

  1. 这个输入了中文再输入数字啥的就不好使了
  2. 加这个就好使了@blur=“item.bankAccount = $event.target.value;”

三、table嵌套过深

  1. 这里是下拉选项我已经选中了但是还是无法显示,查dom就是没有值this.$forceUpdate();这也没用
  2. 是因为绑定值嵌套过深(我是三层对象数组),需要刷新一下table绑定的model值,让vue知道这个数组里的值已经变动了
  3. 这里我用的是tableList.splice(0,0);这种方式,无论什么方式反正你需要刷新一下数组。
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值