.post innerhalb von jQuery.validator.addMethod gibt immer false zurück

7

Ich bin sehr neu in jQuery und Javascript Programmierung. Ich habe ein Programm unten, das überprüft, ob der Benutzername genommen wird oder nicht. Fürs Erste gibt das PHP-Skript immer

zurück %Vor%

Die Login-Funktion funktioniert, aber die Überprüfung des Benutzernamens funktioniert nicht. Irgendwelche Ideen? Hier ist mein Code:

%Vor%

});

    
abdullah kahraman 05.06.2010, 23:53
quelle

3 Antworten

8

Sie müssen die erweiterte Form von $.post() verwenden, die $.ajax() , sodass Sie die Option async auf false setzen können, wie folgt:

%Vor%

Derzeit funktioniert Ihre success -Funktion, die die Antwort analysiert, , nachdem die Validierung abgeschlossen ist, da es sich um eine asynchrone Operation handelt. Zurzeit gibt es also nichts zurück, wenn der Rückgabewert verwendet wird, und undefined ~ = false , weshalb es immer falsch erscheint. Wenn Sie async auf false setzen, lassen Sie den Code in der angegebenen Reihenfolge ohne Rückruf ausführen, sodass die Rückgabe im obigen Beispiel tatsächlich verwendet wird.

Eine weitere Alternative, wenn Sie die Rückgabestruktur Ihrer Seite anpassen können, ist die Verwendung des eingebauten remote des Validierungs-Plugins. Option , die für genau diese Art von Sache ist:)

    
Nick Craver 06.06.2010, 00:33
quelle
11

Es ist OK und arbeitet jetzt. Hier ist der Code:

%Vor%     
abdullah kahraman 06.06.2010 08:31
quelle
2

OK, das ist vielleicht nicht so relevant, aber ich hatte ein ähnliches Problem. Ich habe nichts mit dem Rückgabewert gemacht, ich habe es einfach zurückgegeben. Und es war immer wahr. Nachdem ich herumgestochert hatte, stellte ich fest, dass der Wert vom Server als String zum Validator erschien. Solange es keine leere Zeichenfolge war, würde es wahr werden. Also bestand die Lösung darin, eval ();

zu verwenden

Ein Beispiel:

%Vor%     
Dmitry 04.09.2010 16:45
quelle

Tags und Links