復雜表單如下:
<el-form size="mini" :rules="rules" :model="form" label-width="120px" label-position="right" > <el-form-item label="活動名稱" prop="name"
:rules="[{required:true,message:'不能為空',trigger:'blur'}]"
> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="活動場地" prop="address.name"
:rules="[{required:true,message:'不能為空',trigger:'blur'}]"
>
<el-input v-model="form.address.name"></el-input> </el-form-item> <span v-for="(item,index) in form.sponsor"> <el-form-item :label="'主辦方'+(Number(index)+1)" :prop="'sponsor.'+index+'.name'" :rules="[{required:true,message:'不能為空',trigger:'blur'}]" > <el-input v-model="item.name"></el-input> </el-form-item> </span> <span v-for="(item,index) in form.advices"> <el-form-item label="建議事項" :prop="'advices.'+index+'.content'" :rules="[{required:true,message:'不能為空',trigger:'blur'}]" > <el-input type="textarea" v-model="item.content"></el-input> </el-form-item> <span class="but-words" @click="deleteAdvices(index)">刪除</span> </span> <br/> <el-button size="mini" @click="addAdvices">添加建議事項</el-button> </el-form>
export default { ... data(){ return { form:{ name:'', address:{ id:'', name:'' }, sponsor:[ {id:'1',name:'Tom'}, {id:'2',name:'Jack'} ], advices:[] }, rules:{
//也可以寫在data中 //name:[{required:true,message:'不能為空',trigger:'blur'}], //'address.name':[{required:true,message:'不能為空',trigger:'blur'}], //'sponsor.0.name':[{required:true,message:'不能為空',trigger:'blur'}]//校驗也可以這樣寫 } } }, methods:{ deleteAdvices(idx){ this.form.advices.splice(idx,1) }, addAdvices(){ let obj = { content:'' } this.form.advices.push(obj) } } }
效果圖: