如何在Vue.js中使用onkeypress

时间:2019-09-19 12:11:36

标签: javascript vue.js

我想阻止在Vue输入中写特殊字符。
首先,我做了如下的功能。

blockSpecialChar(e) {
      console.log(e.keyCode);
      const k = e.keyCode;
      return (
        (k > 64 && k < 91) ||
        (k > 96 && k < 123) ||
        k == 8 ||
        (k >= 48 && k <= 57)
      );
    }

然后将其与下面的代码连接起来。

         <input
            type="test"
            placeholder="phone"
            v-model="pin.phoneNumber"
            v-on:keypress.prevent="blockSpecialChar(e)"
          />

但是当我键入时,它说“ e is not defined”。我怎样才能正确地做到这一点?非常感谢您的阅读。

2 个答案:

答案 0 :(得分:2)

您不需要在传递方法时传递参数

<input
    type="test"
    placeholder="phone"
    v-model="pin.phoneNumber"
    v-on:keypress.prevent="blockSpecialChar"
/>

并且此代码现在应该可以使用

blockSpecialChar(e) {
      console.log(e.keyCode);
      const k = e.keyCode;
      return (
        (k > 64 && k < 91) ||
        (k > 96 && k < 123) ||
        k == 8 ||
        (k >= 48 && k <= 57)
      );
    }

答案 1 :(得分:0)

您不需要将e显式传递给按键功能。

只需写:

<input
    type="test"
    placeholder="phone"
    v-model="pin.phoneNumber"
    v-on:keypress.prevent="blockSpecialChar"
/>

由于这是一个回调函数,e将在您的功能块中自动初始化。