我想阻止在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”。我怎样才能正确地做到这一点?非常感谢您的阅读。
答案 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
将在您的功能块中自动初始化。