2016-06-08 15 views
0

ich Javascript lerne und ich diesen Code Probe gefundenJavascript Rückgabewert Position

function validateForm() { 
    var x = document.forms["myForm"]["fname"].value; 
    if (x == null || x == "") { 
    alert("Name must be filled out"); 
    return false; 
    } 
} 

Ich mag würde wissen, ob dies das gleiche wie der Code unten ist, wo ich unter der dem Rückgabewert bewegtewenn Bedingung?

function validateForm() { 
var x = document.forms["myForm"]["fname"].value; 
if (x == null || x == "") { 
    alert("Name must be filled out");   
} 
return false; 
} 
+3

Nein Es ist nicht das gleiche – devnull69

+1

Nein. Die erste gibt nur 'false' zurück, wenn der Wert von' fname' leer ist. Der zweite _always_ gibt false zurück. – Pimmol

+0

@ Pimmol Danke für die Betonung dieses Wortes _always_. Kurze und klare Antwort. Vielen Dank! :) – Randy

Antwort

2

Nr

Es überrascht nicht, bedeutet das return false außerhalb des bedingten Block bewegen Sie es immer return false geändert haben.

Sie nicht den Kontext, wie die Funktion zur Verfügung gestellt haben genannt wird, aber die wahrscheinlichste Folge davon ist, aus, das Verhalten zu ändern:

Wenn das Feld aus einem Alarm nicht gefüllt ist, zeigt und stoppen Sie das Senden des Formulars. Andernfalls senden Sie das Formular.

zu

Wenn das Feld nicht ausgefüllt wird, eine Warnung anzeigen und das Formular von der Abgabe stoppen. Ansonsten halten Sie das Senden des Formulars an. Übermitteln Sie das Formular unter keinen Umständen.

+0

Ich sehe, es ist ein bisschen komisch, wenn Sie sagten, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | In der Tat ist dies das Ergebnis der zweiten Version. : D Danke! – Randy

2

Nein, ist es nicht. Wenn eine return Anweisung aus einer Funktion fehlt, sollten Sie es behandeln, als ob die letzte Zeile ist:

return undefined; 

So Version ein:

function validateForm() { 
    var x = document.forms["myForm"]["fname"].value; 
    if (x == null || x == "") { 
    alert("Name must be filled out"); 
    return false; 
    } 
    return undefined; 
} 

Version zwei:

function validateForm() { 
    var x = document.forms["myForm"]["fname"].value; 
    if (x == null || x == "") { 
    alert("Name must be filled out");   
    } 
    return false; 
} 
+0

Präzise und klar! Ich danke dir sehr! :) – Randy

Verwandte Themen