uni-app uni-ui的uni-forms组件使用时校验失效
uni-app uni-ui的uni-forms组件使用时校验失效
操作步骤
运行附件demo
预期结果
校验成功
实际结果
校验失效,form-item组件在init时无法拿到this.form
bug描述
uni-ui的uni-forms作为组件使用时,校验失效,uni-form-item 无法拿到inject的form
项目 | 信息 |
---|---|
产品分类 | uniapp/小程序 |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | windows10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.36 |
第三方开发者工具版本号 | 4.2.5 |
基础库版本号 | 3.49.0.7 |
项目创建方式 | HBuilderX |
4 回复
附件
请问您解决了吗,遇到了同样的问题 https://ask.dcloud.net.cn/question/204116
无人响应,既然用了uniapp就做好进坑的打算,有问题自己解决吧,估计一年以后说不定官方能看到
在使用uni-app的uni-ui库中的uni-forms组件时,如果遇到校验失效的问题,通常可能是由于校验规则配置不当或者事件绑定不正确导致的。以下是一个示例代码,展示了如何正确使用uni-forms组件及其校验功能。
首先,确保你已经正确安装并引入了uni-ui库。在你的pages.json
或main.js
中引入uni-ui组件库。
// pages.json 示例(按需引入)
"easycom": {
"autoscan": true,
"custom": {
"^u-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
}
}
接下来,在你的页面组件中,配置uni-forms和校验规则:
<template>
<view>
<uni-forms ref="formRef" :rules="rules" @validate="onValidate">
<uni-forms-item label="用户名" name="username" required>
<uni-input v-model="form.username" placeholder="请输入用户名"></uni-input>
</uni-forms-item>
<uni-forms-item label="邮箱" name="email" required>
<uni-input v-model="form.email" type="email" placeholder="请输入邮箱"></uni-input>
</uni-forms-item>
<view>
<button @click="submitForm">提交</button>
</view>
</uni-forms>
</view>
</template>
<script>
export default {
data() {
return {
form: {
username: '',
email: ''
},
rules: {
username: [
{ required: true, message: '用户名是必填项', trigger: 'blur' },
{ min: 3, max: 20, message: '用户名长度在3到20个字符之间', trigger: 'blur' }
],
email: [
{ required: true, message: '邮箱是必填项', trigger: 'blur' },
{ type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' }
]
}
};
},
methods: {
submitForm() {
this.$refs.formRef.validate((valid) => {
if (valid) {
uni.showToast({ title: '提交成功', icon: 'success' });
} else {
uni.showToast({ title: '校验失败,请检查输入', icon: 'none' });
return false;
}
});
},
onValidate(valid, fields) {
console.log('校验结果:', valid, fields);
}
}
};
</script>
上述代码中,我们定义了表单数据form
和校验规则rules
,并在uni-forms
组件中通过ref
属性引用表单实例。在提交表单时,通过调用this.$refs.formRef.validate
方法进行校验。如果校验通过,则显示成功提示;否则,显示失败提示。
确保你的uni-app和uni-ui库是最新版本,以避免已知的bug或兼容性问题。如果问题仍然存在,请检查控制台是否有错误信息,或者尝试简化表单和校验规则以逐步定位问题。