uniapp form表单校验

带required的就是有校验;name要对应model里的值,要统一

复制代码
<template>
	<view class="form-view">
		<uni-forms :modelValue="formData" ref="uniForm" :rules="rules">
			<uni-forms-item label="时间:" name="date" required>
				<uni-datetime-picker type="datetime" return-type="timestamp" v-model="formData.date" placeholder="请选择日期"/>
			</uni-forms-item>
			<uni-forms-item label="名称:" name="name" required>
				<uni-easyinput type="text" v-model="formData.name" placeholder="请输入点名称"/>
			</uni-forms-item>
			<uni-forms-item label="行政区:" name="region">
				<uni-easyinput type="text" v-model="formData.region" placeholder="请输入行政区" />
			</uni-forms-item>
			<uni-forms-item label="信息:" name="content">
				<uni-easyinput type="text" v-model="formData.content" placeholder="请输入信息" />
			</uni-forms-item>
		</uni-forms>
		<button style="max-width: 120px;" type="primary" @click="submitForm">提 交</button>
	</view>
</template>

<script>
	export default{
		name:"patrol",
		data(){
			return{
				formData:{
					id:'',
					date:'',
					name:'',
					region:'',
					content:'',
					isAdd:true,// 是否新增
				},
				rules:{
					//对date字段进行必填验证
					date:{
						rules:[
							{required: true,errorMessage: '请选中日期',},
						]
					},
					// 对name字段进行必填验证
					name: {
						rules: [
							{required: true,errorMessage: '请输入点名称',},
							{minLength: 1,maxLength: 5,errorMessage: '名称长度在 {minLength} 到 {maxLength} 个字符',}
						]
					},
				}
			}
		},
		onload(option){// 接收传递过来的值
			
		},
		methods:{
			// 提交按钮
			submitForm(){
				// 调用校验方法
				this.$refs.uniForm.validate().then(res=>{
					console.log('表单数据信息:', res);
					console.log("formData.id",this.formData.id);
					console.log("formData.date",this.formData.date);
					console.log("formData.name",this.formData.name);
				}).catch(err=>{
					console.log('表单数据错误信息:', err);
				})
				
			},
		}
	}
</script>

<style lang="scss" scoped>
.form-view {
  justify-content: center;
  align-items: center;
  flex-direction: column;
  min-height: 100vh;
  margin-left: 20px;
  margin-right: 20px;
}

</style>
相关推荐
codeGoogle2 小时前
自研 IM 还是选择第三方 SDK?企业开发者应该如何权衡?
前端·后端·程序员
用户938515635073 小时前
React Context 与自定义 Hook 从底层到实践:「跨层级通信 + 副作用封装」全解析
前端·javascript·react.js
滴滴答答哒4 小时前
VUE3+element-plus MultiSelect 多选下拉组件
前端·javascript·vue.js
其美杰布-富贵-李4 小时前
04 watch 与 Vue 响应式数据流
前端·javascript·vue.js
赵大仁5 小时前
生成式 UI 实战:用 JSON Schema + React 动态渲染 AI 界面
前端·ai·react·next.js·前端架构·生成式ui
kyriewen7 小时前
我排查了一个React内存泄漏——罪魁祸首是这3个被忽略的清理函数
前端·javascript·面试
IT_陈寒7 小时前
我又被JavaScript的隐式类型转换坑了
前端·人工智能·后端
其美杰布-富贵-李7 小时前
03 ref、reactive 与 computed 响应式数据
前端·javascript·vue.js
OpenTiny社区7 小时前
GenUI SDK v1.3.0 发布|多框架兼容,一键换物料,渲染器 & 演练场全面增强!
前端·ai编程
用户938515635077 小时前
useRef + Web Worker 实战:React 如何优雅地拥抱多线程
前端·javascript·react.js