Form OnSubmit warten, jQuery Ajax Return?

Will ich auslösen $.ajax auf form onsubmit und return true nur nach Ajax zurück ist etwas gültig.

Beispiel:

<form id="myForm" onsubmit="return ajaxValidation();">
    <input id="myString" name="myString" type="text" />
    <input type="submit" value="Submit" />
</form>

In Javascript:

function ajaxValidation() {
    $.ajax({
        async: false,
        type: "POST",
        url: "ajax.php",
        data: { myString: $("#myString").val() }
    }).success(function( response ) {
        alert(response); //Got 'ok'
        if (response=="ok") {
            return true; //mark-1
        } else {
            alert("Oh, string is wrong. Form Submit is cancelled.");
        }
    });
    return false; //mark-2
}

Wenn ich behaupte, ich bekam alert ok, aber es zurückgegeben, "false", da sprang es zu der definitiven return false Linie.

Warum? Ich kann das nicht verstehen. Eigentlich sollte es Treffer zu return true Linie. (Und, selbst nach return true, die Funktion sollte aufhören, es und nur aus ihm heraus zu kommen)

So ist es nun heißt, die übergeordnete Funktion does NOT wait auf der Ajax-Rückgabe. Stattdessen ist er ständig läuft nach unten bis zum Ende. Keine Ahnung warum, bitte. Wie man die parent-Funktion wartet die Ajax?

Es gibt nur eine Rückkehr, die Auswirkungen auf die ajaxValidation Funktion und das ist die eine mit der Aufschrift 2,der rest in einer anderen Funktion.
Ähnlich wie stackoverflow.com/questions/12171642/...

InformationsquelleAutor | 2013-01-26

Schreibe einen Kommentar