我正在尝试在输入中只能写字母而不能写特殊字符或数字,现在我已经成功了,除非我写“`”或“´”它们继续被写。我怎样才能阻止它们出现?
这是我做的
https://codesandbox.io/s/kind-cannon-vccjb?file=/src/App.vue:0-699
答案 0 :(得分:1)
你的代码对我来说似乎工作正常,但它只能处理键盘按下,粘贴时不起作用。
更好的方法是验证输入并在输入值随 @input
更改时修复它,因为您已经将结果绑定到 this.firstname
。
<template>
<div id="app">
Only letter
<input type="text" v-model="firstName" @input="prueba" />
<br />
</div>
</template>
<script>
export default {
name: "App",
data: () => ({
firstName: "",
}),
methods: {
prueba() {
//this will replace every non letter input with an empty string leading to removing it
this.firstName = this.firstName.replaceAll(/[^a-zA-Z]/g, "");
//you can also do your uppercase change here, no need to do it in update
this.firstName = this.firstName.toUpperCase()
},
},
};
</script>
请注意,您也可以将两行合二为一,例如
this.firstName = this.firstName.replaceAll(/[^a-zA-Z]+/g, "").toUpperCase();