2017-07-04 2 views
1

Ich habe ein kleines Skript, das den Benutzernamen in der Datenbank überprüft, wenn es genommen wird, wird es sagen, wenn es verfügbar ist, wird es sagen, verfügbar. Derzeit funktioniert der folgende Code perfekt in jQuery v1.7.2Ajax Anfrage nicht in der neuen Version von jquery

Wie auch immer ich es aktualisieren muss, um mit der aktuellen Version von jQuery v3.2.1, zu arbeiten, aber versuchen, die aktuelle jquery-Version zu verwenden, sagt nur Verfügbarkeit und nichts zu überprüfen sonst.

$(document).ready(function() { 
    $("#username").keyup(function() { 
    var username = $("#username").val(); 
    var msgbox = $("#status"); 

    if (username.length > 3) { 
     $("#status").html(''); 

     $.ajax({ 
     type: "POST", 
     url: "includes/user_check.php", 
     data: "username=" + username, 
     success: function(msg) { 
      $("#status").ajaxComplete(function(event, request) { 
      if (msg == 'OK') { 

       $("#username").removeClass("red"); 
       $("#username").addClass("green"); 
       msgbox.html('Available'); 
      } else { 
       $("#username").removeClass("green"); 
       $("#username").addClass("red"); 
       msgbox.html(msg); 
      } 

      }); 
     } 
     }); 
    } else { 
     $("#username").addClass("red"); 
     $("#status").html('<font color="#cc0000">To Short</font>'); 
    } 
    return false; 
    }); 
}); 
+0

Können Sie Ihre Frage anders formulieren? –

+1

Willkommen bei Stack Overflow! Fragen, die Debugging-Hilfe suchen ("** warum funktioniert dieser Code nicht? **") müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der notwendig ist, um es ** in der Frage selbst zu reproduzieren **. Fragen ohne ** eindeutige Problemaussage ** sind für andere Leser nicht nützlich. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (https://stackoverflow.com/help/mcve). – Parker

+0

Umformulieren? Ich erkläre einfach das Beste meiner Fähigkeit – Epic

Antwort

0

Wenn Ihr nicht vertraut mit jQuery und kann nicht eine klare Antwort erhalten Sie immer die jQuery migrieren können. Dies kann Ihnen helfen, wenn Sie hier keine Hilfe bekommen können.

+0

Vielen Dank, es hat funktioniert Ich wollte nicht eine andere Datei hinzufügen, aber es hat funktioniert, danke. – Epic

2

Ihre ajaxComplete an der falschen Stelle angebracht. Nach documentation for .ajaxComplete

Zusätzliche Hinweise:

Ab jQuery 1.9, alle Handler für die jQuery globale Ereignisse Ajax, mit dem .ajaxComplete() -Methode einschließlich hinzugefügt haben, müssen zu dokumentieren, werden angebracht.

Wenn $ .ajax() oder $ .ajaxSetup() mit der globalen Option false aufgerufen wird, wird die .ajaxComplete() -Methode nicht ausgelöst.

Versuchen, diesen Teil zu ändern: $("#status").ajaxComplete(function(event, request) {

UPD: Eigentlich brauchen Sie nicht einmal diese Funktion in Ihrer Implementierung. success wird es für Sie tun

+0

alles, was es sagt, wenn ich auf neue Version von Jquery läuft, ist die Überprüfung – Epic

1

Diese Antwort ist möglicherweise nicht ganz richtig, da es von den Versionen von jQuery, die Sie beziehen sich auf, jedoch ab 3.0 der Erfolg, Fehler und vollständige Rückrufe entfernt werden. Und sollte mit fertig ersetzt werden, fail & immer.

http://api.jquery.com/jquery.ajax/

heißt

$.ajax({ 
    type: method, 
    url: url, 
    data: "" 
}).done(function (resp) { 

}).fail(function (resp) { 

}).always(function() { 

}); 
+0

Sie liegen falsch. Sie werden als Erweiterungsmethoden, aber nicht als Parameter veraltet. Überprüfen Sie: https://StackOverflow.com/a/15821199/4121714 und lesen Sie die von Ihnen bereitgestellte Dokumentation sorgfältig durch. "Das jqXHR-Objekt wurde von jQuery zurückgegeben.ajax() ist ein jQuery Deferred und hat in der Vergangenheit drei zusätzliche Methoden mit Namen, die dem arguments-Objekt success, error und complete entsprechen. Dies verwirrte oft Leute, die nicht wussten, dass das zurückgegebene Objekt wie ein Zurückgestelltes behandelt werden sollte. Ab jQuery 3.0 wurden diese Methoden entfernt. Als Ersatz, verwenden Sie die verzögerte ... "siehe Kommentar oben – SouXin

Verwandte Themen