0

以下は、ユーザー名の可用性を確認するための非常に基本的なスクリプトです。

何かを入力するとすぐにgif読み込みアイコンが表示されますが、#status内に「OK」または「利用不可」が表示されるはずなのに、何らかの理由で何も起こりません。

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 に答える