Javascript 检查用户名是否已存在-仅使用onclick

Javascript 检查用户名是否已存在-仅使用onclick,javascript,jquery,Javascript,Jquery,我正在检查注册页面上是否已经存在用户名和电子邮件 我有以下javascript代码: var nombre = document.getElementById("username").value; var email = document.getElementById("email").value; var errorNombre = document.getElementById("erno"); var errorEmail = document.getElementById("erem")

我正在检查注册页面上是否已经存在用户名和电子邮件

我有以下javascript代码:

var nombre = document.getElementById("username").value;
var email = document.getElementById("email").value;
var errorNombre = document.getElementById("erno");
var errorEmail = document.getElementById("erem");

if (nombre == null || nombre.length == 0 || /^\s+$/.test(nombre)) {
    errorNombre.innerHTML = "<font color='red' face='century gothic'>Debe introducir un nombre de usuario</font>";
    return false;
} else {

    $.ajax({
        type: 'POST',
        data: {
            email: email
        },
        url: 'consulta5.php',
        success: function (response) {
            if (response != 0) {
                errorEmail.innerHTML = "<font color='red' face='century gothic'>Correo ya registrado</font>";
                return false;
            } else if (response == 0) {
                //desde aquí
                errorEmail.innerHTML = "";

                $.ajax({
                    type: 'POST',
                    data: {
                        nombre: nombre
                    },
                    url: 'consulta4.php',
                    success: function (response) {
                        if (response != 0) {
                            errorNombre.innerHTML = "<font color='red' face='century gothic'>Nombre de usuario no disponible</font>";
                            return false;
                        }
                    }
                });
            }
        }
    });
} 
var nombre=document.getElementById(“用户名”).value;
var email=document.getElementById(“email”).value;
var errorNombre=document.getElementById(“erno”);
var errorEmail=document.getElementById(“erem”);
if(nombre==null | | nombre.length==0 | |/^\s+$/.test(nombre)){
errorNombre.innerHTML=“Debe introcir un nombre de usuario”;
返回false;
}否则{
$.ajax({
键入:“POST”,
数据:{
电邮:电邮
},
url:'consulta5.php',
成功:功能(响应){
如果(响应!=0){
errorEmail.innerHTML=“Correo ya registrado”;
返回false;
}否则如果(响应==0){
//德斯德阿奎
errorEmail.innerHTML=“”;
$.ajax({
键入:“POST”,
数据:{
nombre:nombre
},
url:'consulta4.php',
成功:功能(响应){
如果(响应!=0){
errorNombre.innerHTML=“Nombre de usuario无争议”;
返回false;
}
}
});
}
}
});
} 
如果它是
$(“#enviar”).live(“click”,function(){
)的一部分,它就可以完美地工作,但问题是,如果一切正常,表单就不会以这种方式发送。但是,如果我尝试在提交时使用
=“return validate()”
只有javascript的第一部分起作用,无论邮件是否存在,表单都会被发送(但当存在一些空格时则不会)

我真的很感谢你的帮助,因为我不知道该怎么做


谢谢:)

此表单未提交,因为您从未告诉它提交。但是,如果您将最内部的成功函数更改为类似以下内容:

success: function (response) {
    if (response != 0) {
        errorNombre.innerHTML = "<font color='red' face='century gothic'>Nombre de usuario no disponible</font>";
        return false;
    }
    else {
        $("#yourForm").submit();
    }
}
成功:功能(响应){
如果(响应!=0){
errorNombre.innerHTML=“Nombre de usuario无争议”;
返回false;
}
否则{
$(“#您的表单”).submit();
}
}
那么我相信你的逻辑是正确的

也就是说,我还建议做一些其他的改变

首先,考虑重新验证PHP以检查单个调用中的两个字段(名称和电子邮件)。您可以使用单个响应值来指示哪个(如果有的话)失败。如果你想要数字响应代码,那么你可以做一些简单的事情,例如0表示所有的好,1表示坏电子邮件,2表示坏名称,3表示两者中的错误。实际上不需要连续两次验证没有相互依赖性的数据


第二,考虑使用CSS!这里不需要使用<代码> <代码>。设置样式(如果必须)或类(优选)在

errorNombre
errorEmail
上。如果这些地方可能显示多个错误,则只需动态设置错误文本。如果只有这些错误出现,您甚至不需要这些错误-将错误消息放在HTML中,只需动态显示或隐藏元素即可。

验证功能是什么你应该考虑使用比HTML3更新奇的东西;Ajax是异步的…你将无法按照你的期望返回你的函数的结果。建议你使用一个验证插件来处理你的远程检查。我现在真的很想对休米你!非常感谢!!(只要提交按钮不在表单中)。