2017-08-22 48 views
0

我有一个旧的脚本,我用它来使用。我不是一个jquery类型的人,我很难获得脚本工作。Jquery更新1-3代码问题

我正在使用jquery 3.2.1,但我只能得到这个工作使用jQuery 1.11.1 我不知道我在找什么或是什么导致的问题。

脚本就设在这里http://www.2my4edge.com/2013/07/username-live-availability-check-using.html

这个问题代码

$(document).ready(function(){ 

$("#username").change(function(){ 

var username = $("#username").val(); 
var msgbox = $("#status"); 

if(username.length > 4){ 

$("#status").html('<img src="loader.gif" align="absmiddle"> Checking availability...'); 

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

     $("#username").removeClass("red"); 
     $("#username").addClass("green"); 
     msgbox.html('<img src="available.png" align="absmiddle">'); 

    } else { 

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

    }); 
    } 

}); 

} else { 
$("#username").addClass("red"); 
$("#status").html('<font color="#cc0000">Please enter atleast 5 letters</font>'); 
} 
return false; 
}); 

}); 

回答

0

更换它尝试以下与版本3配合使用

$(function() {  

$("#username").keyup(function(){ 

var username = $("#username").val(); 
var msgbox = $("#status"); 

if(username.length > 3){ 

$("#status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...'); 

$.ajax({ 
    type: "POST", 
    url: "ajax.php", 
    data: "username="+ username, 
    success: function(msg){ 

    if(msg == 'OK') { 

     $("#username").removeClass("red"); 
     $("#username").addClass("green"); 
     msgbox.html('<img src="available.png" align="absmiddle">'); 

    } else { 

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

    } 

}); 

} else { 

$("#username").addClass("red"); 
$("#status").html('<font color="#cc0000">Please enter atleast 5 letters</font>'); 
} 
return false; 
}); 

}); 
0

同比利用ajaxComplete成功的回调函数,这是没有意义的里面,因为成功回调会火的时候,阿贾克斯完成。此外,根据.ajaxComplete()

在jQuery 1.9,全部为jQuery的全局AJAX事件, 包括那些与.ajaxComplete()方法添加时,处理程序必须 附加到文档中。

尽量去除行:

$("#status").ajaxComplete(function(event, request){ 

及其关闭支架和括号:

}); 

此外,$(document).ready(function(){ jQuery中3已弃用与$(function() {

+0

我试过了你的建议,当我这样做的时候它一起停止运作 – Rome

+0

你选择了正确的答案,这就是我告诉你的,除了你需要改变'$(“#username”)。 (function(){'to'$(“#username”)。keyup(function(){'。如果你还想在你的字段中处理复制/粘贴,你可以把它改为'$(“#username”)。on(“input”,function(){'。 – Wizard