0

下面是一个非常基本的脚本来检查用户名的可用性。

我一输入内容,就会出现 gif 加载图标,但是由于某些原因,什么都没有发生,而在#status 中应该显示“OK”或“not available”。

HTML:

  <label>Username</label> 
    <input type="text" class="input" name="username" id="username"/>
    <span id="status"></span>

JS部分:

<script type="text/javascript">
$(document).ready(function() {

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

        if (username.length >= 4) {
            $("#status").html('<img src="images/gif/ajax-loading.gif">');

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

                        if (msg === 'OK') {
                            msgbox.html('Available');
                         } else {
                             msgbox.html(msg);
                          }
                    });
                }
            });
        } else {

                $("#status").html('Cannot be less than 3  letters');
         }
        return false;
    });
});
</script>

这是ajax_check.php:

<?php
include('includes/connect.php');
if(isset($_POST['username']))
{
   $username = $_POST['username'];
   $username = mysql_real_escape_string($username);
   $rows = query("SELECT id FROM users WHERE username='$username'");

   if (count($rows) == 1) {
       echo 'not available!';
   } else  {
       echo 'OK'; 
            }
}
?>

我检查了查询,它工作正常。

另外,JS 控制台也不会报任何错误。

有任何想法吗?

4

1 回答 1

1

$("#status').ajaxComplete 行是不必要的。如果你成功了:function(msg) 那么它就完成了。删除下面我用 ->> 突出显示的行

 $.ajax({
     type: "POST",
     url: "ajax_check.php",
     data: "username=" + username,
     success: function(msg) {
         ->> REMOVE THIS $("#status").ajaxComplete(function(event, request) {

                    if (msg == 'OK') {
                        msgbox.html('Available');
                     } else {
                         msgbox.html(msg);
                      }
                });
            ->> AND THIS }
        });
于 2013-09-13T00:57:51.787 回答