2017-02-16 7 views
0

Ich habe ein JavaScript, das ein Formular mit einem onsubmit Event-Handler erzeugt. Das Formular wird wie folgt definiert:Stop browser laden nach Formular onsubmit Funktion ist fertig

document.writeln('<form action="#" id="loginForm" onsubmit="processLoginForm(this);">'); 

In diesem processLoginForm() Funktion, die ich im Grunde eine Form Wert am Druck und Rückkehr:

function processLoginForm(form) { 
    var userName = form.uname.value; 
    document.writeln("username = "+userName+"<br>"); 
    return false; 
}; 

Wenn diese Form geladen wird, ist der Browser des Ladevorgang abgeschlossen und erledigt . Das Laden der Seite erfolgt über den Browser. Aber wenn ich auf den Knopf klicke, um das Formular zu senden, wird mein Code verarbeitet, aber mein Browser versucht immer noch, etwas zu laden, das dieses Ladesymbol anzeigt, und hört nie auf. Ich habe versucht, wahr, falsch oder nichts in der Funktion processLoginForm() zurückgeben, aber es hat keine Auswirkungen.

Wie kann ich meinen Browser so einstellen, dass er nicht mehr lädt, wenn mein Submit-Handler fertig ist?

Antwort

0

Ich würde empfehlen, Ihre Funktion nicht in den HTML-Code zu integrieren. Statt dies tun:

HTML

<form action="#" id="loginForm"> 

JavaScript

document.getElementById('loginForm').onsubmit = function(event){ 
    event.preventDefault(); 
    //continue to process the form 
} 

Die event.preventDefault() Methode, die auf das event Argument angebracht, die automatisch in Event-Listener übergeben wird, wird die Standardaktion des Handlers abzubrechen. In diesem Fall versuchen Sie, eine Seite unter /# (gemäß Ihrer Formularaktion) zu laden.

+0

Es klang gut, aber leider funktioniert das nicht wie erwartet. Ich habe immer noch genau das gleiche Problem. – KHP

Verwandte Themen