el-form-item 包含多个input 怎么验证?
<el-form-item v-for="member in memberList" style="display:flex;" prop="member">
<el-select v-model="member.role" clearable filterable placeholder="选择人物角色" style="width:35%">
<el-option v-for="item in projectRole" :label="item.label" :key="item.value" :value="item.value">{{ item.label }}</el-option>
</el-select>
<el-input placeholder="输入人员域账号" v-model="member.username" style="width:35%"></el-input>
<el-button @click.prevent="removeMember(member)">删除</el-button>
<el-button @click.prevent="addMember">增加</el-button>
<br />
</el-form-item>
如果一个el-form-item
中含有两个输入项,比如上面的,一个select
,一个input
,这种如果要使用 element-ui 的表单验证,该怎么写呢?
我尝试了自定义表单验证,
// {trigger: 'change', validator: validatePass,}
var validatePass = (rule, value, callback) => {
console.log(value);
callback();
};
但是value一直是undefined
。不知要怎么写这个prop
属性才可行?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
<el-form-item v-for="member in memberList" style="display:flex;" prop="member">
中的prop
属性名,要跟el-form
的model
对应,也就是说:所以题主这样写是无法触发校验的,一个
el-form-item
也只能有一个 表单元素。就题主的需求,得把
v-for
写在el-form
这一点element-ui真是有点死板,我是这样解决的,有两个<el-input>情况,prop可以只绑定第一个input的,第二个input写上ref属性,验证的rules中写一个方法,这个方法验证第一个input框的同时,通过 this.$refs.xxx.value的形式获取第二个input框值,只要这两个input框中存在有问题的情况则直接返回error。当然这个方法不能算优雅,我也是分享下我的经验,有更好的方法希望大家分享下。
以上是页面代码,校验部分
校验方法
同样遇到这个问题,一个
el-form-item
里有两个input,主要是因为两个input是同一类,比如值的范围。解决方法:
使用两个
el-form-item
嵌套。如下处理FormRules 里正常写字段校验规则即可。