0

jqueryajaxを使用してblurでユーザー名を利用できるようにしています

resposeはfirebugに入ることができます

私の問題は、読み込み中の画像が回転し続けることです。

FirebugコンソールのReferenceError:finishAjaxが定義されていません

setTimeout( "finishAjax('Info'、'" + escape(response)+ "')"、450); これだ

<script type="text/javascript" src="jquery-1.3.2.js"></script>
<link href="css.css" media="screen" rel="stylesheet" type="text/css" />

<script type="text/javascript">

function check_username() {

$.post("check_username_availablity.php", {
username: $('#name').val(),
}, function(response){
//$('#Info').fadeOut();
//$('#Loading').hide();
setTimeout("finishAjax('Info', '"+escape(response)+"')", 450);
});

function finishAjax(id, response) {

$('#'+id).html(unescape(response));
//$('#'+id).fadeIn(1000);
}

}
</script>

</head>
<?php
include('dbcon.php');?>
<body>

<form action="#" name="customForm" id="customForm" method="post" enctype="multipart/form-data">

<div class="both">
<h4> Try "Zeeshan" , "John" , "Katty", "Jimmy" </h4><br clear="all" /><br clear="all" />
<br clear="all" />
<div>
<label>User Name</label>
<input id="name" name="username" type="text" value="" onblur="check_username()"/>
<div id="Info"></div>
<span id="Loading"><img src="loader.gif" alt="" /></span>
</div>
</div>

</form>

</body>
</html>


<?php
include('dbcon.php');
if($_REQUEST)
{
$username   = $_REQUEST['username'];
$query = "select * from register where username = '".strtolower($username)."'";
$results = mysql_query( $query) or die('ok');

if(mysql_num_rows(@$results) > 0) // not available
{
echo '<div id="Error">Already Taken</div>';
}
else
{
echo '<div id="Success">Available</div>';
}

}?>

ありがとう..

4

2 に答える 2

1

関数名をsetTimeoutに渡して呼び出さないようにする必要があります。または、無名関数を使用して関数を本体として呼び出すことができます。

setTimeout(function(){
     finishAjax('Info', escape(response))
}
, 450);​
于 2012-12-09T16:32:39.647 に答える
1

を使用している場合setTimeout、関数は応答変数を閉じる必要があります。これを試して:

function(response){
    setTimeout(function(){
        finishAjax('Info', escape(response));
    }, 
    450);
});
于 2012-12-09T16:35:37.077 に答える