ElementUI select组件下拉选中后同时获取label(name)和value(code)返回给后台

13 篇文章 0 订阅
10 篇文章 1 订阅

使用说明

ElementUI中select组件,一般只能获到一个vlue值,通过value值把label展示在页面中。如果仅仅做展示用,这没有太大问题。但是涉及到交互,需要把选中的option的名称和code一起再返回给后台就需要多写几行代码了。
话不多说。

代码

<el-form-item label="饺子" prop="zbldid" label-width="70px">
	<el-select v-model="form.zbldid" @change="zbldopt" :disabled="$route.query.code == 2" placeholder="请选择" size="mini" style="width: 100%;" value-key="id" clearable>
		<el-option v-for="item in zbldOptions" :key="item.id" :label="item.zbldmc" :value="item.zbldid"></el-option>
	</el-select>
</el-form-item>
data(){
	return{
		form:{
			zbldid:"",//显示在页面中的option值
			zbldmc:"",//option名称
		}
		zbldOptions:[]//从后台获得的下拉框数据
	}
}
//省略结构,以下是方法
mounted(){
	this.initOptions();//页面初始化的时候调用一下下拉框数据接口
}
methods:{
	initOptions(){//获取饺子下拉选项值
		httpRequest({
			url: 'api/url',
			type: 'GET',
			success: ({data})=>{
				if(data){
					this.zbldOptions = data;
				}
			}
		});
	},
	zbldopt(val){//获取 饺子 点击下拉框value和label
		let resultArr = this.zbldOptions.filter((item)=>{
			return item.zbldid === val
		});
		//把值赋给要传给后台的表单对象中
		this.form.zbldid = resultArr[0].zbldid;
		this.form.zbldmc = resultArr[0].zbldmc;//直接写val也可以
	},
}

嗯,就酱婶儿。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过 `el-select` 的 `filterable` 属性和 `remote` 方法来实现根据后台返回的状态码显示对应的文字。 首先,设置 `el-select` 的 `filterable` 属性为 `true`,这样就可以在下拉列表中进行搜索。 其次,设置 `el-select` 的 `remote` 方法,当用户在搜索框中输入关键字时,会触发 `remote` 方法,并将搜索关键字作为参数传递给该方法。在 `remote` 方法中,可以使用 `axios` 或其他库将关键字发送到后台进行搜索,并根据返回的状态码显示对应的文字。 以下是一个示例代码: ```html <el-select v-model="value" filterable remote :remote-method="search"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` ```javascript export default { data() { return { value: '', options: [] } }, methods: { search(query) { axios.get('/api/search', { params: { q: query } }).then(res => { if (res.data.code === 200) { this.options = res.data.data.map(item => ({ label: item.name, value: item.id })) } else { this.$message.error(res.data.message) } }).catch(err => { this.$message.error('网络错误,请稍后重试') }) } } } ``` 在上面的示例代码中,`search` 方法中使用 `axios` 发送搜索请求,并在请求成功后根据返回的状态码判断是否显示错误信息。如果状态码为 `200`,则将搜索结果转换成 `el-option` 组件需要的格式,并赋值给 `options` 属性。如果状态码不为 `200`,则显示错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值