Handhabung Geben Sie den Schlüssel in Vue.js ein

10

Ich lerne Vue.js. In meinem Vue habe ich ein Textfeld und eine Schaltfläche. Diese Schaltfläche sendet standardmäßig ein Formular, wenn jemand die Eingabetaste auf der Tastatur drückt. Wenn jemand das Textfeld eintippt, möchte ich jede gedrückte Taste erfassen. Wenn der Schlüssel ein @ -Zeichen ist, möchte ich etwas Besonderes machen. Wenn die Taste "Enter" gedrückt wird, möchte ich auch etwas Besonderes machen. Letzteres ist die Herausforderung für mich. Derzeit habe ich diese Fiddle , die diesen Code enthält:

%Vor%

In meinem Beispiel kann ich die "Enter" -Taste nicht drücken, ohne das Formular zu senden. Allerdings würde ich erwarten, dass die validateEmailAddress -Funktion zumindest zuerst feuert, damit ich sie erfassen kann. Aber das scheint nicht zu passieren. Was mache ich falsch?

    
user687554 22.03.2017, 12:42
quelle

2 Antworten

9

Ereignismodifikatoren

Sie können sich in Ereignismodifikatoren in vuejs anmelden, um die Formularübermittlung am Schlüssel enter zu verhindern .

  

Es ist sehr häufig erforderlich, event.preventDefault() oder event.stopPropagation() in Event-Handlern aufzurufen.

     

Obwohl wir dies innerhalb von Methoden leicht machen können, wäre es besser, wenn die Methoden rein auf Datenlogik basieren und nicht mit DOM-Ereignisdetails umgehen müssen.

     

Um dieses Problem zu beheben, bietet Vue Ereignismodifikatoren für v-on . Denken Sie daran, dass Modifikatoren direktive Postfixes sind, die durch einen Punkt gekennzeichnet sind.

%Vor%

Wie die Dokumentation sagt, ist dies syntaktischer Zucker für e.preventDefault() und stoppt die unerwünschte Formularübertragung beim Drücken der Eingabetaste.

Hier ist eine funktionierende Geige.

%Vor% %Vor% %Vor%
    
Amresh Venugopal 22.03.2017, 13:12
quelle
11

Sie vergessen ein '}' vor der letzten Zeile (um die "Methoden {...") zu schließen.

Dieser Code funktioniert:

%Vor% %Vor% %Vor%
    
SLYcee 22.03.2017 13:13
quelle

Tags und Links