2016-04-06 13 views
0

Ich habe ein Formular auf einer Website und ich validiere es mit JS. Das Problem, das ich habe, ist, nachdem die Validierung des Formulars fehlgeschlagen ist, löscht der Browser die Daten, die vom Benutzer eingegeben wurden.Browser löschen Formulardaten

Ich habe versucht, den "submit" Typ Wert von der Schaltfläche zu strippen und das Formular mit JS abzuschicken. Mein Code überprüft jedes einzeln Feld, Graf von allen möglichen Ausgaben zu halten, und soll nur einreichen, wenn die Zahl> 0.

function validateForm() 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
    return false; // I assumed this would prevent the form submitting 
    } 
    else 
    { 
     document.forms[0].submit(); 
    } 
} 

Der Code für meine Taste ist

HTML 
<button tabindex = "18" id = "submitForm" onclick = "validateForm();">Submit</button> 

Dies ist nicht nur beschränkt auf IE Es tritt auch bei Firefox auf. Das Formular wird so lange gesendet, wie alle Felder unabhängig von Fehlern ausgefüllt sind.

+0

fügen Sie dem Button eine neue Eigenschaft hinzu: 'type =" button "'. Und nach 'validateForm();' add 'return false;'. Diese Zeile ist immer noch für die HTML-Schaltfläche. – Jer

Antwort

0

Für <button> ist der Standardtyp submit, setzen Sie den Typ auf button Wenn Sie nicht möchten, dass es übermittelt wird.

1

Rufen Sie die JavaScript-Funktion als onclick = "return ValidateForm();".

Auch wenn ValidateForm() true zurückgibt, dann wird das Formular gesendet, so dass es nicht nötig ist, "document.forms [0] .submit();" zu schreiben. Verwenden Sie folgende Funktion:

function validateForm() 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
    return false; // I assumed this would prevent the form submitting 
    } 
    else 
    { 
     return true; 
    } 
} 

<input type="submit" value="Submit" tabindex = "18" id = "submitForm" onclick= "return validateForm();" /> 
0

Oder Sie können einfach tun:

function validateForm(event) 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
     return false; 
    } 
    return true 

und auf die Schaltfläche

<button tabindex = "18" id = "submitForm" onclick = "return validateForm(event);">Submit</button> 

, aber ich schlage vor, Sie jQuery zu verwenden hierfür: jquery submit