2017-12-26 3 views
0

Ich habe mir Code angesehen, der von jemandem gepostet wurde und ich weiß nicht, warum er preventDefault hier benutzt hat. Kann mir jemand sagen warum?Javascript: Warum hier preventDefault verwendet?

Vielen Dank. https://codepen.io/Sylvia31/pen/eygvVm

form.addEventListener('submit', function (e) { 

    **e.preventDefault();** 

    responseContainer.innerHTML = ''; 
    searchedForText = searchField.value; 
    const imgRequest = new XMLHttpRequest(); 
    imgRequest.onload = addImage; 
    imgRequest.onerror = function (err) { 
     requestError(err, 'image'); 
    }; 
+1

Es ist zu verhindern, dass der Browser ein Formular abschickt. – Pointy

+0

@ Pointy aber warum muss der Browser verhindern, ein Formular zu senden? – Sylvia

+1

Wahrscheinlich, weil die Übermittlungsaktion die Seite neu lädt –

Antwort

0

Grundsätzlich ist prevent verwendet abzubrechen oder das normale Verhalten des Ereignisses zu stoppen. Zum Beispiel das Verhindern des Sendens einer Absenden-Schaltfläche oder das Verhindern der Weiterleitung eines Links.

Hier könnte die Person preventDefault verwendet haben, um zu verhindern, dass das Kontrollkästchen gesendet wird.

2

Sie können aus dem Event.preventDefault() MDN Reference sehen, dass:

preventDefault() Methode, die den User-Agent sagt, wenn das Ereignis nicht explizit behandelt erhält, sollte seine Standardaktion nicht gemacht werden, da es normalerweise wäre.

Und mit einer Form der Standardaktion von den Absenden-Button klicken, um den Benutzer zu der Aktionsseite submit die Form und umleiten definiert in Form, und die Verwendung von preventDefault() im submit Event-Handler kann das sein würde aufhören Formularübermittlung

In Ihrem Fall e.preventDefault() wird hier verwendet, um das Standardverhalten der Formularübertragung zu stoppen und einen alternativen Codeblock auszuführen, der in diesem Fall ein XMLHttpRequest ist.