1.检查是否使用setRules设置规则
uview官网:如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
this.$refs.uForm.setRules(this.rules)
注意:这段代码需要加载uForm渲染出来之后,否则会报 Error in onReady hook: “TypeError: Cannot read property ‘setRules’ of undefined”
2.检查两个地方的名称是否相同
uview官网:rules中的属性名和form的属性名是一致的,同时传递给u-form-item的prop参数绑定的也是相同的属性名,注意这里prop参数绑定的是 字符串(属性名),而不是一个变量。
<u--form
labelPosition="left"
:model="model"
:rules="rules"
ref="uForm"
>
<u-form-item
label="姓名"
prop="name" <!-- 待注意名1 -->
borderBottom
ref="item1"
>
<u--input
v-model="model.name" <!-- 待注意名2 -->
border="none"
></u--input>
</u-form-item>
</u--form>
model:{
name:''
},
rules:{
name:{
required: true,
message: '请填写姓名',
trigger: ['blur', 'change']
}
}