uView2中form表单验证可能失效原因

今天使用uview2的form表单开启规则验证的时候发现的验证始终并通过:

<u--form :model="model1" ref="uForm" :rules="rules">

// ...

<u-form-item label="日期" prop="date" :required="true">
		<view @click="show=true">
				<text v-if="!model1.date">请选择日期</text>
                // formatDate是时间格式化方法,date实则为时间戳
				<text v-else style="color:#000">{{formatDate(date)}}</text>
		</view>
</u-form-item>

当触发提交的时候

submit() {
	this.$refs.uForm.validate().then(res => {
		uni.$u.toast('校验通过')
	}).catch(errors => {
		uni.$u.toast('校验失败')
	})
}

校验始终不通过

下面是当前校验规则:

rules: {
		date: [
			{
				required: true,
				message: '日期不能为空',
				trigger: ['change']
			}
	],
// ...

解决方案:

需添加type约束,如这里date是时间戳(数字类型),补充type为number即可,如下。

rules: {
		date: [
			{
				required: true,
                type: 'number',
				message: '日期不能为空',
				trigger: ['change']
			}
	],
// ...

导致原因可能是这里使用的自定义指定字段验证导致的,即每次选择日期后会触发下句代码:

this.$refs.uForm.validateField('date');

总之,希望本文会对你有所帮助~ ^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值