我想通过ajax检查用户名是否可用。我目前正在使用以下代码:
HTML
<div id="registration-form">
<label for="username">Enter Username :
<input name="username" type="text" id="username" maxlength="15"> <span id="user-result"></span>
</label>
</div>
的JavaScript
<script type="text/javascript">
$(document).ready(function() {
var x_timer;
$("#username").keyup(function (e){
clearTimeout(x_timer);
var user_name = $(this).val();
x_timer = setTimeout(function(){
check_username_ajax(user_name);
}, 1000);
});
function check_username_ajax(username){
$("#user-result").html('<img src="ajax-loader.gif" />');
$.post('username-checker.php', {'username':username}, function(data) {
$("#user-result").html(data);
});
}
});
</script>
这里是php
<?php
if(isset($_POST["username"]))
{
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die();
}
$mysqli = new mysqli('localhost' , 'root', 'juaid123', 'project2');
if ($mysqli->connect_error){
die('Could not connect to database!');
}
$username = filter_var($_POST["username"], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);
$statement = $mysqli->prepare("SELECT username FROM user_list WHERE username=?");
$statement->bind_param('s', $username);
$statement->execute();
$statement->bind_result($username);
if($statement->fetch()){
die('Username Not Available!');
}else{
die('Username Available!');
}
}
?>
一切都很完美,我的代码实时显示消息,但问题是如果用户名字符小于6并且只想在输入字段中允许字母和数字,我不想显示任何消息,是否可以请帮助我如何做到这一点.. 感谢
答案 0 :(得分:1)
您只需在输入中使用HTML模式属性即可限制数字和字母http://www.w3schools.com/tags/att_input_pattern.asp。 translate(-50%, -50%) translate(-100px, -300px);
然后你可以在你的帖子函数中进行验证:
[a-zA-Z0-9]