从循环Vue.js中的每个选择中获取数据

Posted

技术标签:

【中文标题】从循环Vue.js中的每个选择中获取数据【英文标题】:Get data from each select in the loop Vue.js 【发布时间】:2021-03-28 21:58:01 【问题描述】:

我有一系列产品要填写(产品字段:type:"",name:"")。 有一个变量可以输入要输入的产品数量。然后,对于每个产品,使用一个选择和一个输入文本呈现一个单独的 div。 我需要从每个这样的块中获取数据并将它们放入一个数组中。

      <div v-for="n in parseInt(countProd)" :key="n">
        <div>
          <select>
            <option>option1</option>
            <option>option2</option>
            <option>option3</option>
          </select>
          <input placeholder="Product name">
        </div>
    </div>

【问题讨论】:

【参考方案1】:

让我知道这是否有意义。

new Vue(
      el: '#app',
      data() 
        return 
          title: "Vue 2 app",
          countProd:0,
          products:[]
        ;
      ,
      watch:
        countProd(newVal,old)
          console.log(old,newVal)
          this.products=Array.from(length:newVal,(v,i)=>
            return  type:'1', name:''
          )
        
      
    )
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
No. of Products:
<input v-model="countProd" />
<div v-for="(p,n) in products" :key="n">
        <div>
          <select v-model="products[n].type">
            <option value="1">option1</option>
            <option value="2">option2</option>
            <option value="3">option3</option>
          </select>
          <input placeholder="Product name" v-model="products[n].name">
        </div>
    </div>
    <p v-if="products.length>0">products</p>
</div>

【讨论】:

谢谢,但是如何选择 2 的 concat 值,例如: 和最终类型如:“option1”+“option4”跨度> 目前最终的形状是[type:'1',name:'one',...,...]你想要的形状如何? 最终的形式是相同的[type:'1',name:'one',...,...],但是类型是由两个选择组合而成的 可能有 n 个没有。的项目。您要如何以及要连接哪 2 个选择? 连接,我的意思是结合第一个和第二个select的值。例如,第一次选择时,我选择了 option1,从第二次选择中,我选择了 option4。然后键入 =“option1”+“option4”。结果,您应该得到: [type: 'option1 + option4', name: 'name', ..., ...]

以上是关于从循环Vue.js中的每个选择中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Vue js,使用 TypeScript 从 Vue 中的表单获取数据

如何从 Vue.js 中的 JSON 文件中获取数据?

如何从对象数组中获取特定数据并存储在js(vue js)中的新数组中

无法从 v-for 获取数据且数据为空

如何将从 API 获取的数组分配给 Vue.js 中的数据属性?

在循环中渲染复选框并在 Vue JS 中绑定它们的值