以下是检查用户名可用性的基本脚本。
我输入内容时会出现gif加载图标,但由于某些原因,没有任何反应,而应该有“OK”或“不可用”出现在#status中。
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控制台不会报告任何错误。
有什么想法吗?
答案 0 :(得分:1)
$(“#status”)。ajaxComplete行是不必要的。如果你成功了:function(msg)那么它就完成了。删除我在下面突出显示的行 - &gt;&gt;
$.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 }
});