一、有加form的表单校验,然后输入框无法数据的情况
- 整个页面是一个form表单嵌套着
- 红色部分是看情况增加,如果不点新增那它也可以没有,点了新增里面的input就成了必填
- 这里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>

情况
- 输入框无法输入,表单校验一致提示是必填的,类似于触发了刷新dom($forceUpdate)的情况才可以在input框看到输入的值
原因
- 如果进行表单验证,绑定了:model=“subForm”,那么这下面需要验证的内容都需要直接先声明上。
- 例如addAccountPOS: [{name: ‘’, account: '}],先这么声明(不能addAccountPOS:[], 后期再给他push对象),这样页面上绑定的:prop="
addAccountPOS[${index}].bankName
"才能正常识别并使用。
二、使用了οninput=“value=value.replace(/[^\d]/g,‘’)”
- 这个输入了中文再输入数字啥的就不好使了
- 加这个就好使了@blur=“item.bankAccount = $event.target.value;”
三、table嵌套过深
- 这里是下拉选项我已经选中了但是还是无法显示,查dom就是没有值this.$forceUpdate();这也没用
- 是因为绑定值嵌套过深(我是三层对象数组),需要刷新一下table绑定的model值,让vue知道这个数组里的值已经变动了
- 这里我用的是tableList.splice(0,0);这种方式,无论什么方式反正你需要刷新一下数组。

