uview表单校验不生效问题

最近几次使用发现有时候会不生效,具体还没排查出来什么原因,先记录一下解决使用方法

html 复制代码
<u--form
	labelPosition="top"
	labelWidth="auto"
	:model="form"
	:rules="rules"
	ref="uForm"
>
	<view class="form-item">
		<view class="form-remark">
			<u-form-item
				label="反馈与建议"
				prop="contents"
				:borderBottom="false"
				:required="true"
				ref="item1"
			>
				<u--textarea
					v-model="form.contents" 
					placeholder="您填写的信息越全,问题越可有效解决哦~" 
					:count="true"
					maxlength="300"
					border="none"
					disableDefaultPadding="true"
					:placeholderStyle="{'fontSize':'28rpx;'}"
				></u--textarea>
			</u-form-item>
		</view>
	</view>
	<view class="form-item">
		<view class="form-remark">
			<u-form-item
				label="手机号"
				labelPosition="left"
				prop="phonenumber"
				:borderBottom="false"
				ref="item1"
			>
				<u-input
					placeholder="请输入手机号"
					border="none"
					v-model="form.phonenumber"
					:customStyle="{
						'line-height':'100rpx',
						'padding-bottom':'5px'
					}"
					color="#666"
					fontSize="14"
				></u-input>
			</u-form-item>
		</view>
	</view>
</u--form>
js 复制代码
<script>
export default {
	data() {
		return {
		form:{
			contents: null, // 备注
				phonenumber: null, 
				url: ''
			},
			rules: {
				'contents': {
					required: true,
					message: '请填写描述信息',
					trigger: ['blur', 'change']
				},
				'phonenumber': {
					required: true, 
					validator: (rule, value, callback) => {
						// 上面有说,返回true表示校验通过,返回false表示不通过
						return uni.$u.test.mobile(value);
					},
					message: '手机号码格式不正确',
					// 触发器可以同时用blur和change
					trigger: 'change',
				},
			},
		}
	},
	onReady() {
		//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
		this.$refs.uForm.setRules(this.rules)
	},
}	
</script>

需要注意的是(有待验证):

  1. 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规 this.$refs.uForm.setRules(this.rules),如果是页面就写在onReady 里,如果是组件需要写在mounted
  2. prop 用contents可以正确校验,用form.contents好像不能正确校验
相关推荐
new code Boy15 小时前
Vue2转Vue3速查表
前端·javascript·vue.js
紫_龙15 小时前
最新版vue3+TypeScript开发入门到实战教程之toRefs与toRef实用技巧
前端·javascript·typescript
大家的林语冰15 小时前
Vite 第 1 个 Rolldown 稳定版正式发布,前端构建又一波“工业革命“
前端·javascript·vite
博客zhu虎康16 小时前
我的创作纪念日——五载创作路,以技术赴热爱
前端·经验分享·csdn·技术分享·我的创作纪念日
前端之虎陈随易17 小时前
Vite 8正式发布,内置devtool,Wasm SSR 支持
前端·人工智能·typescript·npm·node.js·wasm
AI_567817 小时前
基于智优达平台的Python教学实践:从环境搭建到自动评测
开发语言·前端·人工智能·后端·python
IT_陈寒17 小时前
JavaScript开发者必备的5个高效调试技巧,90%的人都不知道最后一个!
前端·人工智能·后端
嘉琪00117 小时前
前端数组核心方法(高级视角 + 场景 + 精简)——————2026 0309
开发语言·前端·javascript
jarvisuni17 小时前
GLM5实战测试,挑战Opus4.6 !
前端·数据库
c++之路17 小时前
HTTP协议全解析:从原理到Web应用实战
前端·网络协议·http