在用vue element 的 el-form 组件时, 遇到一个问题就是使用el-form的resetFields也就是对整个表单进行重置时,发现有个输入框没有重置(也就是清空)前端页面如下图,要实现的是姓名、学号必填,备注选填,点击“取消”按钮的时候,重置/清空所以输入框:
html代码:
<el-form :model="studentInfo" ref="studentInfoForm" :rules="studentRules" :inline="true">
<el-form-item label="姓名:" prop="studentName">
<el-input v-model="studentInfo.studentName" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="学号:" prop="studentId">
<el-input v-model="studentInfo.studentId" placeholder="学号"></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="studentInfo.remark" placeholder="备注"></el-input>
</el-form-item>
</el-form>
<div class="bottom-btns">
<el-button @click="handleCancel">取 消</el-button>
<el-button type="primary" @click="handleSub">提 交</el-button>
</div>
js代码:
// rules 在data的return 里
studentRules: {
studentName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
studentId: [{ required: true, message: '请输入学号', trigger: 'blur' }],
},
studentInfo:{
studentName:'',
studentId:'',
remark:'',
},
// 事件 在methods里
handleCancel(){
this.$refs["studentInfoForm"].resetFields();
},
handleSub(){},
后来上午查的说是想让resetFields起作用的话,需要给el-form-item添加一个prop属性,官网上对prop的说明:
按照说明,在使用 validate、resetFields 方法的情况下,该属性是必填的,我对此使用不熟练,所以赶紧给“备注”加上了prop属性:
但发现还是不行…
后来才发现是我prop写的不对!原来这个prop的值也是要和v-model里绑定的值对应的!也就是:
其实作为菜鸟,这个我是不太理解的,我以为prop属性值可以自定义,没想到和v-model有关系要一致。。。(小猜测:难道prop的值不只是给校验的时候查找el-form-item用的,也是对应的el-form的:model="studentInfo"这个studentInfo对应的值?)
希望本文对您有所帮助!
也希望懂得原理的大佬不吝赐教!