elementui- Select 选择器-案例: 在v-for循环的多个下拉列表选择后需要传递对应的名字和id

elementui- Select 选择器-案例: 在v-for循环的多个下拉列表选择后需要传递对应的名字和id 及表单校验的应用

场景 多个下拉框由v-for循环得到, 下拉框选项也是通过循环得到
多个下拉框由v-for循环而来

结构代码

		<el-form-item label="商品名称及数量">
          <el-row
            v-for="(item, index) in form.baseProList"
            :key="index"
          >
            <el-form-item
               :prop="`baseProList.${index}.baseProdId`"
               :rules="ruleForm.baseProdId"
             >
                <el-select
                  v-model="item.baseProdId"
                  class="selectStyle"
                  placeholder="请选择商品名称"
                  value-key="id"
                  @change="selectChanged"
                >
                  <el-option
                    v-for="opt in nameList"
                    :key="opt.id"
                    :label="opt.name"
                    :value="opt.id"
                  />
                </el-select>
              </el-form-item>
            </el-col>
            <el-col class="leftM" :span="12">
              <el-col :span="12">
                <el-form-item
                  :prop="`baseProList.${index}.quantity`"
                  :rules="ruleForm.quantity"
                >
                  <el-input
                    v-model.trim="item.quantity"
                    class="pickipt"
                    placeholder="请输入商品数量"
                    :min="1"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-button class="btnAdd" @click="addRow"></el-button>
                <el-button v-show="form.baseProList.length !== 1" class="btnMinus" @click="delRow(index, item.baseProdName)"></el-button>
              </el-col>
            </el-col>
          </el-row>
        </el-form-item>

script代码
双向绑定已经拿到了id, 只要再拿到id对应的名字即可, 这里用了find的方法进行绑定对应的名字

data() {
    return {
        baseProList: [ // 商品信息
          {
            baseProdId: null, // 商品id
            baseProdName: '', // 商品名称
            quantity: '' // 商品数量
          }
        ],
        nameList: []  // 下拉框选项的数据, 通过接口获取, 里面形式如下
        // [{name: 'lihua', id: 1}, {name: 'zs', id: 2}
methods: {
	selectChanged(id) { // 双向绑定了id, 已经拿到了id, 只要再拿到id对应的名字即可, 这里用了find的方法进行绑定对应的名字
	      this.form.baseProList.find(item => item.baseProdId === id).baseProdName = this.nameList.find(item => item.id === id).name
    },
}
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值