Javascript 新版本jquery中未触发Ajax请求
我有一个小脚本,检查数据库中的用户名,如果它是采取它会说采取,如果它是可用的,它会说可用。目前,以下代码在jQueryV1.7.2中运行良好 我需要如何更新它才能使用当前版本的jQuery v3.2.1, 但是尝试使用当前的jquery版本时,它只是说检查可用性,而不是其他Javascript 新版本jquery中未触发Ajax请求,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个小脚本,检查数据库中的用户名,如果它是采取它会说采取,如果它是可用的,它会说可用。目前,以下代码在jQueryV1.7.2中运行良好 我需要如何更新它才能使用当前版本的jQuery v3.2.1, 但是尝试使用当前的jquery版本时,它只是说检查可用性,而不是其他 $(document).ready(function() { $("#username").keyup(function() { var username = $("#username").val();
$(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;
});
});
您的ajaxComplete连接到错误的位置。
据
补充说明:
从jQuery1.9开始,jQueryGlobalAjax事件的所有处理程序,包括使用.ajaxComplete方法添加的处理程序,都必须附加到文档中
如果在全局选项设置为false的情况下调用$.ajax或$.ajaxSetup,.ajaxComplete方法将不会激发
尝试更改此部分:$status.ajaxCompletefunctionevent,request{
UPD:实际上,您甚至不需要在实现中使用此功能。成功将为您提供此功能。您的ajaxComplete连接到错误的位置。
据
补充说明:
从jQuery1.9开始,jQueryGlobalAjax事件的所有处理程序,包括使用.ajaxComplete方法添加的处理程序,都必须附加到文档中
如果在全局选项设置为false的情况下调用$.ajax或$.ajaxSetup,.ajaxComplete方法将不会激发
尝试更改此部分:$status.ajaxCompletefunctionevent,request{
UPD:实际上,您甚至不需要在实现中使用此函数。成功将为您提供此功能此答案可能不太正确,因为它取决于您所引用的jQuery版本,但是从3.0开始,成功、错误和完整回调将被删除。并应替换为完成、失败和始终 i、 e
这个答案可能不太正确,因为它取决于您所引用的jQuery的版本,但是从3.0开始,成功、错误和完整回调被删除。并且应该替换为done、fail&always i、 e
如果您不熟悉jQuery并且无法获得直接的答案,您可以始终使用jQuery迁移。如果您在此处无法获得任何帮助,这可能会对您有所帮助。如果您不熟悉jQuery并且无法获得直接的答案,您可以始终使用jQuery迁移。如果您在此处无法获得任何帮助,这可能会对您有所帮助。您可以重新表述您的问题吗stion?欢迎使用Stack Overflow!寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中复制它所需的最短代码。没有明确问题说明的问题对其他读者没有用处。请参阅:。重新措辞?我只是在解释t他尽了我最大的能力哪个版本有效,哪个版本失败?@Gaby aka G.Petrioli刚刚更新了我正在使用的jquery 3.2.1的问题,但它只是说检查。但是对于jquery 1.7.2版本,它工作得很好。你能重新表述你的问题吗?欢迎使用堆栈溢出!寻求调试帮助的问题为什么这段代码不起作用?必须包含所需的behavior,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。重新措辞?我只是尽我所能解释哪个版本有效,哪个版本无效?@Gaby aka G.Petrioli我刚刚更新了我正在使用的jqu问题ery 3.2.1,但它只是说检查。但是对于版本Jquery 1.7.2,它工作得很好。当我在新版本的Jquery上运行时,它所说的一切都是检查。当我在新版本的Jquery上运行时,它所说的一切都是检查。你错了。它们不推荐作为扩展方法,而不是作为参数。检查:请仔细阅读你提供的文档从jQuery.ajax返回的qXHR对象是一个延迟的jQuery,历史上有三个额外的方法,它们的名称与success、error和complete对象的参数相匹配。这常常让那些没有意识到返回的对象应该被当作延迟对象来对待的人感到困惑。从jQuery 3.0开始,这些方法已经被删除。作为替换s、 使用Deferred…请参阅上面的注释您错了。它们不推荐作为扩展方法,而不是参数。检查:请仔细阅读您提供的文档。从jQuery.ajax返回的jqXHR对象是一个jQuery Deferred对象,历史上有三个额外的方法,其名称与成功的arguments对象匹配,错误,完成。这经常会让那些没有意识到返回的对象应该被视为延迟对象的人感到困惑。从jQuery 3.0开始,这些方法已被删除。作为替换,请使用延迟对象…请参阅上面的注释谢谢它起作用了我不想添加另一个文件,但它起作用了谢谢。谢谢它起作用了我不想这样做添加另一个文件,但它工作了,谢谢。
$.ajax({
type: method,
url: url,
data: ""
}).done(function (resp) {
}).fail(function (resp) {
}).always(function () {
});