Uczę się Vue.js. W moim Vue mam pole tekstowe i przycisk. Domyślnie ten przycisk przesyła formularz, gdy ktoś naciśnie klawisz Enter na klawiaturze. Kiedy ktoś pisze w polu tekstowym, chcę uchwycić każdy naciśnięty klawisz. Jeśli klucz jest symbolem „@”, chcę zrobić coś specjalnego. Jeśli naciśnięty klawisz to klawisz „Enter”, chcę też zrobić coś specjalnego. Ta ostatnia stawia mi wyzwania. Obecnie mam to Fiddle , które zawiera ten kod:
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';
}
});
W moim przykładzie nie mogę wcisnąć klawisza „Enter” bez przesłania formularza. Spodziewałbym się jednak, że validateEmailAddress
funkcja przynajmniej uruchomi się jako pierwsza, abym mógł ją uchwycić. Ale tak się nie dzieje. Co ja robię źle?