javascript - $.ajax 从 php 文件取回数据时出错

标签 javascript php jquery ajax

我正在开发一个网站,现在是它的注册表单!但我有一个类似的问题!我想创建一个用户名输入字段,当用户输入时,检查用户名是否已存在于数据库中并给出一些输出。

错误是这样的:假设数据库中只有用户名“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/

相关文章:

php - Facebook Graph API 偶发错误 : Peer certificate cannot be authenticated with known CA certificates

php - 使用 SSL 验证 LDAP/Active Directory 登录

javascript - 将附加元素附加并保留到 jQuery ui-autocomplete

javascript - 如何保持 jQuery Accordion 禁用但仍更改其事件状态?

javascript - 当浏览器窗口最小化时,JS 会发生什么?

javascript - 像 Molio、Pilu 的 web-app-theme 或 Yui App Theme 这样的 CSS 布局主题?

javascript - jQuery DatePicker - 选择整周

javascript - [React.js]尝试导入错误: './registerServiceWorker' does not contain a default export (imported as 'registerServiceWorker' )

php - 使用 PHP 获取具有相同名称的 2 个 HTML 输入标签的值

javascript - 在 JavaScript 中解开对象