我正在开发一个网站,现在是它的注册表格!但是我有一个问题!我想创建一个用户名输入字段,然后在用户键入时检查用户名是否已存在于数据库中并提供一些输出。
错误是此错误:假设数据库中只有用户名“ Manuel”。如果在输入字段中输入“ Manuel”,则不会显示任何消息。现在,如果我键入任何其他字符,它将给我消息“用户已存在”。如果我删除最后一个键入的字符,则消息消失。如果再次键入并输入类似“ Manuela”的信息,则会显示该消息;如果再次键入并输入“ 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
}
});
}
最佳答案
Ajax表示异步JavaScript和XML。
您正在检查实际上未收到的值。
您应该执行以下操作:
function validateUsername() {
// remove input-error, text
if (...localcheck...) {
// add input-error, text
}
else if (...otherlocalcheck...) {
// add input-error, text
}
else {
$.ajax({
...
success : function(data) {
if (data.CHECK) {
// add input-error, text
}
}
});
}
}
关于javascript - $ .ajax错误从php文件获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20939165/