uni-app开发——使用uni-forms在input表单校验遇到复杂自定义操作时,第一次无法响应校验的坑

在uni-app中使用uni-forms进行表单验证时,遇到首次点击提交不触发校验的异常。问题在于自定义表单事件在第一次触发时,字段`this.formData[item.prop]`为undefined。解决方案是初始化formData时,确保所有字段已定义。

表单选的时提交时做校验,

validate-trigger="submit"

自定义了表单事件,第一次点击提交无法触发校验,再选择操作,才没问题

<uni-forms-item class="side-padding" :name="item.prop" :required="item.required||false" :label="item.label" v-else-if="item.type==='actionsheet'&&item.hidden!==false">
				<input :disabled="formData.disabled || false" type="text" v-model="formData[item.prop]" class="uni-input-border" placeholder-style="font-size: 32rpx;color:#CCCCCC;text-align: right;" @focus="getsyscode(item)" @blur="binddata(item.prop, $event.detail.value)" :placeholder="item.placeholder||'请选择'" />
				<tui-actionsheet  
				  :show="item.showActionSheet || false" 
				  :item-list=" item.itemList||'' " 
				  @click="itemClick($event,item)" 
				  @cancel="()=>{item.showActionSheet=false}">
				</tui-actionsheet>
</uni-forms-item>

问题处理过程中,发现第一次点击选择后调用

this.$refs.form.setValue(this.formData[item.prop],item.itemList[i].text)

时,this.formData[item.prop],即该字段undefine,不存在,原来就是未定义,只需要在开始定义formData时,把字段初始化定义一遍即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值