繁体   English   中英

使用jQuery检查用户名可用性

[英]check username availability with jQuery

我正在使用此功能在注册时检查用户名的可用性,如果用户名存在,则禁用提交按钮。 我正在使用php脚本检查用户名是否存在于数据库中。 该代码在我的本地服务器上运行完美,但是当托管在Godaddy服务器上时,在提交或尝试导航到另一个页面时出现以下错误:

空响应

回复为空后,大约一分钟无法访问我的网站,这很好。

我尝试了很多类似在所有其他js文件之前调用jquery.js文件的操作,但是对我来说没有任何效果。

我对jQuery和javascript不太满意。 谢谢你的建议。

这是脚本和HTML形式:

 function check_availability_username() { var min_chars = 4; var max_chars = 30; var re = /^\\w+$/; var characters_error1 = 'Minimum amount of chars is 4'; var characters_error2 = 'Maximum amount of chars is 30'; var characters_error3 = 'Chars can be only letters, numbers and underscores!'; var checking_html = 'Checking...'; var username = $('#username').val(); $.post("check_username.php", { username: username }, function(result) { if (result == 1) { if ($('#username').val().length < min_chars) { $('#username_availability_result').html(characters_error1); $('input[name=submit]').attr('disabled', true); } else if ($('#username').val().length > max_chars) { $('#username_availability_result').html(characters_error2); $('input[name=submit]').attr('disabled', true); } else if (!re.test($('#username').val())) { $('#username_availability_result').html(characters_error3); $('input[name=submit]').attr('disabled', true); } else { $('#username_availability_result').html(username + ' is Available'); $('input[name=submit]').attr('disabled', false); } } else { $('#username_availability_result').html(username + ' is not Available'); $('input[name=submit]').attr('disabled', true); } }); if (event.which == 13 || event.keyCode == 13) { $.post("check_username.php", { username: username }, function(result) { if (result == 0) { $('#username_availability_result').html(username + ' is not Available'); $('input[name=submit]').attr('disabled', true); } }); } $('#submit').click(function() { $.post("check_username.php", { username: username }, function(result) { if (result == 0) { $('#username_availability_result').html(username + ' is not Available'); $('input[name=submit]').attr('disabled', true); } }); }); } 
 <form id="login-id" action="suscribe-form.php" method="POST" onkeyup="return check_availability_username();"> <div class="form-group"> <label for="username">Username</label> <input type="text" class="form-control button-or-space" name="username" id="username" value="" minlength="4" maxlength="25" required pattern="\\w+"> <input type='hidden' id='check_username_availability' value='Check Availability'>&nbsp;<span id='username_availability_result' name='username_availability_result'></span> </div> <div class="form-group"> <label for="password1">Password</label> <input type="password" class="form-control button-or-space" name="password1" id="password1" value="" minlength="8" maxlength="60" required pattern="(?=.*\\d)(?=.*[az])(?=.*[AZ]).{8,}" onchange="form.password2.pattern = this.value;"> </div> <div class="form-group"> <label for="password2">Confirm password</label> <input type="password" class="form-control button-or-space" name="password2" value="" minlength="8" maxlength="60" required pattern="(?=.*\\d)(?=.*[az])(?=.*[AZ]).{8,}"> </div> <div class="form-group pull-right"> <input type="submit" name="submit" id="submit" value="Register" class="btn btn-success button-or-space"> </div> </form> 

这是php脚本:

<?php    

mysql_connect('localhost', 'root', '');
mysql_select_db('DB');

$username = mysql_real_escape_string($_POST['username']);

$result = mysql_query('select username from user where username = "'.$username.
  '"');

if (mysql_num_rows($result) > 0) {
  echo 0;
} else {
  echo 1;
}

?>

我终于找到了解决方案。 问题不是来自jQuery或php脚本,我只是将调用函数的方式从:onkeyup更改为onchange,现在它像一种魅力一样工作了。 我希望这个技巧可以避免其他人像我一样浪费时间。 谢谢你们的建议。

如果出现500错误,则表明数据库连接有问题。 检查包含的文件和用于数据库连接的连接变量。

希望能奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM