我有一个小脚本,用于检查数据库中的用户名是否已被采用,如果它可用,它会说是可用的。目前,以下代码在jQuery v1.7.2中完美运行
我怎么需要更新它以使用当前版本的jQuery v3.2.1, 但是试图使用当前的jquery版本,它只是说检查可用性而没有别的。
$(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 :(得分:2)
你的ajaxComplete
附在错误的地方。
根据{{3}}
附加说明:
从jQuery 1.9开始,jQuery全局Ajax事件的所有处理程序,包括那些添加了.ajaxComplete()方法的处理程序,都必须附加到文档中。
如果在全局选项设置为false的情况下调用$ .ajax()或$ .ajaxSetup(),则不会触发.ajaxComplete()方法。
尝试更改此部分:$("#status").ajaxComplete(function(event, request) {
UPD:实际上,您在实施中甚至不需要此功能。 success
将为您完成
答案 1 :(得分:1)
这个答案可能不太正确,因为它取决于你所指的jQuery的版本,但是从3.0开始,成功,错误和完整的回调都被删除了。应该用done,fail&amp;总是
http://api.jquery.com/jquery.ajax/
即
$.ajax({
type: method,
url: url,
data: ""
}).done(function (resp) {
}).fail(function (resp) {
}).always(function () {
});
答案 2 :(得分:1)
如果您不熟悉jQuery并且无法得到直接答案,您可以随时使用jQuery migrate。如果你在这里得不到任何帮助,这可能对你有所帮助。