2017-01-28 3 views
2

Ich überprüfte den Debugger auf Chrom und ich konnte keine Fehler erkennen.Funktion nicht aufrufen oder feuern

Ich habe alle meine Funktionen in einem zusammengefasst, um den Anruf einfacher zu lesen.


 
function runAll() { 
 
    var validation = true; 
 
    checkForLastName(); 
 
    checkForSelection(); 
 
    validateRadio(); 
 
    validateZipCode(); 
 
    validateEmail(); 
 
    validatePassword(); 
 
    return validation; 
 
}
<form onSubmit ="return runAll();"> 
 
    Please enter your name. 
 
    <input type ="text" id="lastNameField"> 
 
    <br> 
 
    <button>submit</button> 
 
</form>

Die einzelnen Funktionen sind Brennen, aber sie sind nicht zusammen.

Irgendwelche Gedanken?

+0

Meinen Sie, dass wie für Debugger RulAll() überhaupt nicht aufgerufen wird? –

Antwort

1

Ich denke, der Return-Befehl verursacht das Problem; es ist nur gültig innerhalb eines Funktionsaufruf

<form onSubmit ="return runAll();"> 

<form onSubmit ="runAll()"> 
1

sein sollte Ich gehe davon aus, dass jede der Funktionen checkForLastName, checkForSelection ... entweder true oder false je nach ihrer Validierung der Eingabe zurück, um ihre Handhabung. Sie müssen also überprüfen, ob einer von ihnen false zurückgibt, um die Übermittlung zu stoppen. Wenn meine Annahme richtig ist, verwenden Sie diese:

function runAll() { 
    // if not checkForLastName return false 
    if(!checkForLastName()) return false; 
    // if not ... 
    if(!checkForSelection()) return false; 
    if(!validateRadio()) return false; 
    if(!validateZipCode()) return false; 
    if(!validateEmail()) return false; 
    if(!validatePassword()) return false; 

    // then if all is good (none of them returned false), you can return true to submit 
    return true; 
}