首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在按键上获取当前值

如何在按键上获取当前值
EN

Stack Overflow用户
提问于 2019-12-05 08:42:50
回答 2查看 980关注 0票数 2

我使用vue.js并在表中创建一个表,我有一个输入字段为quantity,所以当我键入第一个单词时,它是在控制台上打印empty

如果我键入3,则显示为空,如果键入44,则打印4,我正在使用v-on:keypress捕获事件,我不知道这里有什么问题

代码语言:javascript
运行
复制
var app = new Vue({
  el: "#app",
  data: {

    invoice_products: [{
      product_no: '',
      product_name: '',
      product_price: '',
      product_qty: '',
      line_total: 0
    }]
  },

  methods: {
    calculateLineTotal(invoice_product) {
      console.log(invoice_product.product_qty)
    }
  }
});
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.6/vue.js"></script>
<div id="app">

  <table>
    <thead>
      <tr>

        <th>Quantity</th>
        
      </tr>
    </thead>
    <tbody>
      <tr v-for="(invoice_product, k) in invoice_products" :key="k">

        <td>
          <input class="form-control text-right" type="number" min="0" step=".01" v-model="invoice_product.product_qty" v-on:keypress="calculateLineTotal(invoice_product)" />
        </td>

      </tr>
    </tbody>
  </table>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-05 08:50:22

您应该使用keyup事件处理程序。

KeyPressKeyUpKeyDown分别类似于:ClickMouseUp,MouseDown

  1. Down发生first
  2. Press第二次发生(当文本是entered)
  3. Up时最后发生(当文本输入完成时)。

代码语言:javascript
运行
复制
var app = new Vue({
  el: "#app",
  data: {

    invoice_products: [{
      product_no: '',
      product_name: '',
      product_price: '',
      product_qty: '',
      line_total: 0
    }]
  },

  methods: {
    calculateLineTotal(invoice_product) {
      console.log(invoice_product.product_qty)
    }
  }
});
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.6/vue.js"></script>
<div id="app">

  <table>
    <thead>
      <tr>

        <th>Quantity</th>
        
      </tr>
    </thead>
    <tbody>
      <tr v-for="(invoice_product, k) in invoice_products" :key="k">

        <td>
          <input class="form-control text-right" type="number" min="0" step=".01" v-model="invoice_product.product_qty" v-on:keyup="calculateLineTotal(invoice_product)" />
        </td>

      </tr>
    </tbody>
  </table>
</div>

票数 2
EN

Stack Overflow用户

发布于 2019-12-05 08:50:47

您的问题是,在输入字段中处理键之前,按下键时会触发on keypress事件;原因是允许您的事件进程函数捕获它并最终将其过滤掉。这就是为什么这个领域还没有显示正确的结果,因为它还没有“看到”关键。

因此,您需要的解决方案是更改您的逻辑,以捕获keyup事件,该事件将在焦点字段中输入键后触发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59191213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档