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>