1、如图所示: 下拉选中202, 组件的change事件打印出来的是value值(就是下面打印出来的),但我现在只想获取202(这是赋值在label属性中的)这个值,不想获取下面打印出来的值,如何解决? 谢谢了,被这个问题烦住了。
1、如图所示: 下拉选中202, 组件的change事件打印出来的是value值(就是下面打印出来的),但我现在只想获取202(这是赋值在label属性中的)这个值,不想获取下面打印出来的值,如何解决? 谢谢了,被这个问题烦住了。
2019.01.24 更新
今天想到一个更简单的办法,可以获取任意数据,通过绑定原生click事件来进行传参。
组件模板中:
<el-select v-model="form.orgId">
<el-option
v-for="item in orgList"
:key="item.orgId"
:value="item.orgId"
:label="item.orgName"
// 绑定原生click事件来进行传参
@click.native="option_click_handler(item)"
></el-option>
</el-select>
methods中:
option_click_handler(data: any) {
this.orgData = data;
},
可以通过 $refs
拿到 el-select
组件实例,该实例拥有 selectedLabel
属性,为当前选中的 label
。
或者可以通过 selected
拿到选中的 option
的组件实例,拥有 label
和 value
两个属性。
<el-select
v-model="form.addressProvince"
ref="selectProvince"
@change="select_handler_province"
>
<el-option
v-for="(item,index) in addressProvince"
:value="item.code"
:label="item.name"
></el-option>
</el-select>
select_handler_province() {
Vue.nextTick(() => {
console.log(this.$refs.selectProvince.selectedLabel);
console.log(this.$refs.selectProvince.selected.label);
});
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
你的select,是数组对象(不重复的)形式循环渲染出来的。所以可以只需操作数据形式求得,
添加
@change="changeValue"
用Array find方法用对象的属性查找数组里的对象即可
可以拷贝到这个地址运行下即可