Vue + ElementUI 动态设置表单必填属性
最近要实现一个动态设置表单必填属性的需求。如图,当审核结果是通过的时候,可以不填写审核意见进行提交。而如果审核结果是驳回的时候则必须填写审核意见才能提交。第一个想法就是建两个一样的el-form-item,一个有rules,一个没有,然后通过v-if控制显隐。<el-form-item label="审核意见" v-if="testForm.checkResult!='1'"><
·
最近要实现一个动态设置表单必填属性的需求。如图,
当审核结果是通过的时候,可以不填写审核意见进行提交。而如果审核结果是驳回的时候则必须填写审核意见才能提交。
第一个想法就是建两个一样的el-form-item,一个有rules,一个没有,然后通过v-if控制显隐。
<el-form-item label="审核意见" v-if="testForm.checkResult!='1'">
<el-input type="textarea" v-model="testForm.remark"></el-input>
</el-form-item>
<el-form-item label="审核意见" prop="remark" v-if="testForm.checkResult=='1'">
<el-input type="textarea" v-model="testForm.remark"></el-input>
</el-form-item>
感觉上是OK的,然后提交的时候却发现驳回的时候,在不填写审核意见的情况下仍然可以提交。
这个要讲清楚涉及到底层代码、DOM渲染等问题了,巴拉巴拉。。。(主要是不会,就不误导了)
那应该怎么解决呢?
在知道大概原因后可以将判断条件移动至el-form-item,然后通过行内的rules来控制渲染问题。
<el-form-item label="审核意见" prop="remark" :rules="testForm.checkResult=='1' ? rules.remark : [{ required:false}]">
<el-input type="textarea" v-model="testForm.remark"></el-input>
</el-form-item>
然后经过多次实验点击均测试无问题。
待修炼修炼再来细谈这个问题吧。
参考资料 感谢感谢!
更多推荐
已为社区贡献1条内容
所有评论(0)