Javascript 检查用户名是否已存在-仅使用onclick
我正在检查注册页面上是否已经存在用户名和电子邮件 我有以下javascript代码: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")
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是异步的…你将无法按照你的期望返回你的函数的结果。建议你使用一个验证插件来处理你的远程检查。我现在真的很想对休米你!非常感谢!!(只要提交按钮不在表单中)。