效果是id recruitType的值传给接口,选择框里选项点了才会高亮,这样的问题是如何解决的?

作者站长头像
站长
· 阅读数 18
 <el-select v-model="title" placeholder="请选择" @change="handleSelect">
      <el-option
        v-for="item in PublishRecruitList"
        :key="item.id"
        :label="item.title"
        :value="item.recruitType"
      ></el-option>
    </el-select>
js
    handleSelect(v) {
          console.log(v)
    }

现在要在item里拿两个值,一个是id recruitType,:value给了item,在下拉框里所有选项会高亮,正常交互是点击了才会高亮,然后选择框了的值input没有替换

我想要的效果是id recruitType的值传给接口,选择框里选项点了才会高亮,这样的问题是如何解决的

回复
1个回答
avatar
test
2024-06-19

一般 el-option 绑定的 value 值是唯一的。不然就会选择一个option高亮一堆选项。所以可以使用你需求的 idrecruitType 去做一个拼接的 value 值。

<el-select v-model="testValue" placeholder="请选择" @change="handleSelect">
  <el-option
    v-for="item in PublishRecruitList"
    :key="item.id"
    :label="item.title"
    :value="`${item.id}-${item.recruitType}`"
  ></el-option>
</el-select>
handleSelect(val){
    const [id, recruitType] = val.split('-')
    this.formData.selectId = id
    this.formData.selectRecruitType = recruitType
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容