如图1,在第一个下拉选择的时候,第二个select 动态赋值,
但是在选择了第一次动态生成的选项后,重新选择了第一个select的选项,第二个下拉中的选项也随之更改了,但是刚才的选项并没有去除,还在上面,如图三,
有点懵逼,新手试炼中,不知道怎么在第一个select改变的时候清空第二个
如图1,在第一个下拉选择的时候,第二个select 动态赋值,
但是在选择了第一次动态生成的选项后,重新选择了第一个select的选项,第二个下拉中的选项也随之更改了,但是刚才的选项并没有去除,还在上面,如图三,
有点懵逼,新手试炼中,不知道怎么在第一个select改变的时候清空第二个
// 清空方法( 解决清空第一个选择框值后,第二个select的值无法选择的问题)
methods:{
resetValue(){
this.$set(this.form, 'select1', '')
}
}
给需要清空的值添加一个判断就行:
eg:
<el-form-item label="项目组名称" prop="project_team_id">
<el-select v-model="pageData.project_team_id"
placeholder="请选择项目组"
clearable
@change="project_team_change"
>
<el-option v-for="item in project_team_code_list"
:key="item._id"
:label="item.project_team_name"
:value="item._id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目名称" prop="project_id">
<el-select v-model="pageData.project_id"
placeholder="请选择项目"
clearable
>
<el-option v-for="item in project_code_list"
:key="item._id"
:label="item.project_name"
:value="item._id">
</el-option>
</el-select>
</el-form-item>
async project_team_change(project_team_id) {
this.project_code_list = await this.$getProjectCodeInfo({'project_team_id': project_team_id});
if (this.pageData.project_id) {
this.pageData.project_id = '';
}
},
注:
// if (this.pageData.project_id) {
// let fields = this.$refs['pageDataRef'].fields;
// for (let i = 0; i < fields.length; i++) {
// if (fields[i].prop === 'project_id') {
// fields[i].resetField();
// break;
// }
// }
// }
原始写法,后来发现不需要这样复杂,只需要在第一次赋值中进行判断就行,最好是判断不为空即可
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
监听第一个select的改变 然后把第二个select的值改成null
用watch, 像这样