0

我也有这个问题,它总是导致“用户名已被占用”。我该如何解决这个问题?我需要那个 ajax 加载器动画运行 4 秒,然后给用户任何消息

<script type="text/javascript">
    $(document).ready(function() {
        $("#username").change(function() {
            $("#message").html("<img src='ajax-loader.gif' /> checking...");

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

            $.ajax({
                type: "post",
                url: "sign_up.php",
                data: "username=" + username,
                success:function(data) {
                    if(data == 0){
                        $("#message").html("<img src='tick.png' /> Username available");
                    } else {
                        $("#message").html("<img src='cross.png' /> Username already taken");
                    }
                }
            });
        });
    });
</script>
4

5 回答 5

1

你的ajax调用有错误应该如下

$.ajax({
    url: "sign_up.php",
    data: {'username': username},
    type: "POST",
    success: function(data) {
        if(data == 0) {
            $("#message").html("<img src='tick.png' /> Username available");
        } else {
            $("#message").html("<img src='cross.png' /> Username already taken");
        }
    }
});

在注册页面上,您可以通过以下方式访问用户名$_POST['username']

于 2013-06-05T11:34:36.420 回答
0

在发送 ajax 请求之前使用 setTimeout。

setTimeout(function() { 
    // Just Pass
}, 4000);

这将确保请求必须在 4 秒后执行。

于 2013-06-05T11:36:43.543 回答
0

您可以使用 setTimeout 功能。例如以下代码将在 3 秒后隐藏 div

jQuery(document).ready(function () {
    //hide a div after 3 seconds
    setTimeout( "jQuery('#div').hide();",3000 );
});
于 2013-06-05T11:36:47.250 回答
0

我可能会使用 setTimeOut() 函数,它的工作原理如下:

setTimeout(function() {
      // any script here will execute after 2 seconds
}, 2000);

这里的代码将在 2 秒后执行。希望这可以帮助。

于 2013-06-05T11:41:34.407 回答
0

通过setTimeout()在成功函数中使用,您可以延迟响应消息。我还将您的数据分配更改为一个对象,这更好,因为 jQuery 将为您编码该值。如果您像在原始代码中一样传递一串数据,则您负责编码,并且需要将其包装在encodeURIComponent().

$.ajax({
        type: "post",
        url: "sign_up.php",
        data: {username : username},
        success:function(data){

            setTimeout(function(){
                var msg = data == 0 ? "<img src='tick.png' /> Username available" : "<img src='cross.png' /> Username already taken";

                $("#message").html(msg);
             }, 4000);
        }
}
于 2013-06-05T11:46:23.370 回答