Я занимаюсь разработкой веб-сайта, и прямо сейчас его регистрационная форма! Но у меня есть что-то вроде проблемы! Я хочу создать поле ввода пользователя, и когда пользователь печатает, проверьте, существует ли имя пользователя в базе данных и дает какой-то результат.
Ошибка в этом: предположим, что в базе данных есть только имя пользователя «Manuel». Если я набираю «Мануэль» в поле ввода, сообщение не отображается. Теперь, если я набираю какой-либо другой символ, он дает мне сообщение «Пользователь уже существует». Если я удалю последний напечатанный символ, сообщение исчезнет. Если я снова наберу и что-то вроде «Мануэла», появится сообщение, если я снова наберу и у вас «Manuelae» сообщение исчезнет
Спасибо за помощь!
Вот код
Здесь поле ввода: (register.php)
<input type="text" id="username" name="username" maxlength="40" required="required">
<span id="username-info">What's your username?</span>
Здесь Javascript и JQuery код (registration.js)
$(document).ready(function() {
var userExists = new Boolean();
var username = $("#username");
var usernameInfo = $("#username-info");
username.keyup(validateUsername);
}
Здесь функция validateUsername():
function validateUsername(){
checkUsername();
var minlenght = 5;
var usernameVal = username.val();
if(usernameVal.length < 1){
usernameInfo.addClass("input-error");
usernameInfo.text(messages.FIELD_REQUIRED);
} else if(usernameVal.length < minlenght){
usernameInfo.addClass("input-error");
usernameInfo.text(messages.USERNAME_MIN_WORDS+minlenght+' '+messages.USERNAME_CHARACTERS);
} else if(userExists){
//here i tell the user that the user already exists
usernameInfo.addClass("input-error");
usernameInfo.text('The user already exists');
} else {
usernameInfo.removeClass("input-error");
usernameInfo.text("");
}
}
А вот функция checkUsername():
function checkUsername() {
var url = 'processregistration.inc.php';
$.ajax({
type: "POST",
dataType:"json",
url: url,
data: {username: username.val()},
success: function(data){
userExists = data.CHECK; //true if the user exists, false if not
}
});
}
Используйте console.log(), чтобы отобразить данные, отправленные и полученные. Это может помочь найти ошибку. Кстати, не следует ли вам вызывать шоу, когда вы получите ответ? – Tigran