【问题标题】:How to increase the quantity according to the input given in Vue如何根据Vue中给出的输入增加数量
【发布时间】:2021-11-02 06:31:43
【问题描述】:

我有一个这样的屏幕:

所以基本上我正在尝试将产品添加到购物车中。目前,我可以在单击按钮时执行此操作。但是我也想在输入字段中添加金额时添加它。所以如果没有数量,数量应该增加一次,如果输入的数量是5,点击按钮后数量需要增加5次。 为此我的html:

<div class="row number-of-tickets">
            <input type="number" class="col-1 form-control" />
            <button class="btn button col-2" @click="addToCart()">Add to cart</button>
          </div>

还有我的加入购物车方法:

addToCart() {
            this.$store.dispatch('addProductToCart', {
                product: this.product,
                quantity: 1
            })
        }

所以目前,我可以在单击按钮时添加,但在输入输入时我无法添加金额。我是 vue 新手,如果你能帮助我,那就太好了。

【问题讨论】:

    标签: javascript html vue.js vuejs2 vue-component


    【解决方案1】:

    你考虑过this这样的东西吗?

    <input type="number" v-model="quantity" />
    

    后来你的方法

    addToCart() {
      this.$store.dispatch("addProductToCart", {
        product: this.product,
        quantity: this.quantity // this.quantity here
      });
    }
    

    【讨论】:

    • 感谢您的解决方案,但问题出在您的解决方案中,现在我在没有输入任何输入的情况下失去了点击按钮功能。而且它不添加,例如,我输入 5,它在购物车上显示 5,当我再次添加 5 而不是 10 时,它显示 55。
    • 可能需要使用parseInt(this.quantity)v-model.number="quantity" 才能正常工作(见我的回答)。
    【解决方案2】:
    1. 在组件的数据对象上创建itemsCount 属性:

      data: function {
        return {
          itemsCount: ""
        }
      }
      
    2. 使用v-model 属性将您的输入值分配给itemsCount 属性。

      &lt;input type="number" class="col-1 form-control" v-model="itemsCount" /&gt;

    3. 重构 addToCart() 函数以考虑 itemsCount 值。

      addToCart() {
        let quantity = this.itemsCount !== "" ? this.itemsCount : 1
        this.$store.dispatch('addProductToCart', {
          product: this.product,
          quantity: parseInt(quantity)
        })
      }
      

    【讨论】:

    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2013-03-18
    • 2016-11-19
    • 2021-11-24
    • 2022-01-07
    相关资源
    最近更新 更多