使用el-select的v-modal绑定的是一个对象,测试发现没有选择选项,valid却是true;
以前一直这么写,没有发现这个问题,唯一不同就是绑定的对象
代码如下:
<el-form :model="updateForm" ref="updateForm" :rules='rules' label-width="100px" >
<el-form-item label="项目联系人" prop="updatecontactUser" >
<el-select v-model="updateForm.updatecontactUser" value-key="id" filterable remote :remote-method="getAllUser" :loading="updatecontactloading" placeholder="请选择项目联系人(可输入邮箱或姓名检索)" style="width: 90%">
<el-option
v-for="itemUser in allUserList"
:key="itemUser.id"
:label="itemUser.username"
:value="itemUser">
<span style="float: left">{{ itemUser.username||'' }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ itemUser.userEmail||''}}</span>
</el-option>
</el-select>
</el-form-item>
updateForm:{
updatecontactUser:{},//指定的项目联系人信息
projectID:'',
},
rules: {
updatecontactUser: [
{ required: true, message: '请选择项目联系人', trigger: 'change' }
],},
于是添加一个绑定的非对象进行测试
<el-form :model="updateForm" ref="updateForm" :rules='rules' label-width="100px">
<el-form-item label="项目联系人" prop="updatecontactUser">
<el-select v-model="updateForm.updatecontactUser" value-key="id" filterable remote
:remote-method="getAllUser" :loading="updatecontactloading"
placeholder="请选择项目联系人(可输入邮箱或姓名检索)" style="width: 90%">
<el-option
v-for="itemUser in allUserList"
:key="itemUser.id"
:label="itemUser.username"
:value="itemUser">
<span style="float: left">{{ itemUser.username||'' }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ itemUser.userEmail||''}}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目联系人" prop="updatecontactUser1">
<el-select v-model="updateForm.updatecontactUser1" placeholder="请选择项目联系人(可输入邮箱或姓名检索)"
style="width: 90%">
<el-option
v-for="itemUser in allUserList"
:key="itemUser.id"
:label="itemUser.id"
:value="itemUser.id">
<span style="float: left">{{ itemUser.username||'' }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ itemUser.userEmail||''}}</span>
</el-option>
</el-select>
</el-form-item>
</el-form>
updateForm: {
updatecontactUser: {},//指定的项目联系人信息
projectID: '',
updatecontactUser1: '',
},
rules: {
'updatecontactUser': [
{required: true, message: '请选择项目联系人', trigger: 'change'}
],
updatecontactUser1: [
{required: true, message: '请选择项目联系人', trigger: 'change'}
],
},
测试结果:第一个校验无效,第二个校验生效
解决办法:将绑定对象的prop和rules都精确到字段