我正在学习 Vue.js。在我的 Vue 中,我有一个文本字段和一个按钮。默认情况下,当有人按下键盘上的 Enter 键时,此按钮会提交表单。当有人在文本字段中输入时,我想捕获每个按下的键。如果键是’@‘符号,我想做一些特别的事情。如果按下的键是“Enter”键,我也想做一些特别的事情。后者给我带来了挑战。目前,我有这个 Fiddle ,其中包括以下代码:
new Vue({
el: '#myApp',
data: {
emailAddress: '',
log: ''
},
methods: {
validateEmailAddress: function(e) {
if (e.keyCode === 13) {
alert('Enter was pressed');
} else if (e.keyCode === 50) {
alert('@ was pressed');
}
this.log += e.key;
},
postEmailAddress: function() {
this.log += '\n\nPosting';
}
});
在我的示例中,如果不提交表单,我似乎无法按“Enter”键。然而,我希望 validateEmailAddress
函数至少首先触发,以便我可以捕获它。但是,这似乎并没有发生。我究竟做错了什么?
原文由 user687554 发布,翻译遵循 CC BY-SA 4.0 许可协议
事件修饰符
您可以参考 vuejs 中的 事件修饰符 来防止在
enter
键上提交表单。正如文档所述,这是
e.preventDefault()
的语法糖,将在按下回车键时停止不需要的表单提交。这 是一个工作小提琴。