[英]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'> <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.