表单验证不触发解决办法

1:直接在input中加入@input="binddata('email',$event.detail.value)"方法

<uni-forms-item label="邮箱" name="email">
<input class="input"
v-model="formData.email"
type="text"
placeholder="请输入用户名"
@input="binddata('email',$event.detail.value)" />
</uni-forms-item>

2:validateFunction 自定义校验规则

(1)在onReady中设置规则

onReady() {
// 需要在onReady中设置规则
this.$refs.form.setRules(this.rules)
},

(2)html代码

<uni-forms ref="form" :modelValue="formData">
<uni-forms-item label="兴趣爱好" required name="hobby">
<uni-data-checkbox v-model="formData.hobby" multiple :localdata="hobbys" />
</uni-forms-item>
</uni-forms>
<button class="button" @click="submit">校验表单</button>

(3)rules代码

rules: {
hobby: {
rules: [{
required: true,
errorMessage: '请选择兴趣',
},{
validateFunction:function(rule,value,data,callback){
if (value.length < 2) {
callback('请至少勾选两个兴趣爱好')
}
return true
}
}]
}
}

(4)submit函数

submit(form) {
this.$refs.form.validate().then(res=>{
console.log('成功:', res);
}).catch(err =>{
console.log('失败:', err);
})
}

总结

到此这篇关于uniapp表单验证的文章就介绍到这了,更多相关uniapp表单验证内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

发表回复