登录验证javascript无法正常工作

登录验证javascript无法正常工作,javascript,jsp,validation,ajaxform,Javascript,Jsp,Validation,Ajaxform,所以我有这个登录表单,它检查数据库中是否存在用户,以及密码和用户名是否匹配。如果出现错误,将显示一条错误消息,但尽管如此,用户仍可以提交答案,即使答案是错误的!如何阻止提交按钮直到答案正确 函数validateUsername(){ var-xmlhttp; var u=document.getElementById(“用户名”).value; var url=“checkLogin.jsp?uname=“+u; 如果(window.XMLHttpRequest)xmlhttp=new XML

所以我有这个登录表单,它检查数据库中是否存在用户,以及密码和用户名是否匹配。如果出现错误,将显示一条错误消息,但尽管如此,用户仍可以提交答案,即使答案是错误的!如何阻止提交按钮直到答案正确


函数validateUsername(){
var-xmlhttp;
var u=document.getElementById(“用户名”).value;
var url=“checkLogin.jsp?uname=“+u;
如果(window.XMLHttpRequest)xmlhttp=new XMLHttpRequest();
//IE7+、Firefox、Chrome、Opera、Safari的代码
else xmlhttp=newActivexObject(“Microsoft.xmlhttp”);//IE6、IE5的代码
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4)
document.getElementById(“loginstatus”).innerHTML=xmlhttp.responseText;
};
open(“GET”,url,true);
xmlhttp.send();
}
函数validateLogin(){
var-xmlhttp;
var u=document.getElementById(“用户名”).value;
var p=document.getElementById(“密码”).value;
var url=“checkLogin1.jsp?uname=“+u+”&pwd=“+p;
如果(window.XMLHttpRequest)xmlhttp=new XMLHttpRequest();
//IE7+、Firefox、Chrome、Opera、Safari的代码
else xmlhttp=newActivexObject(“Microsoft.xmlhttp”);//IE6、IE5的代码
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4)
document.getElementById(“loginstatus1”).innerHTML=
xmlhttp.responseText;
};
open(“GET”,url,true);
xmlhttp.send();
}

尝试在默认情况下禁用按钮:

<input type="submit" id="submit" value="Log in" disabled="true">
您可能还希望将这一行添加到每个验证函数的顶部:

document.getElementById("submit").disabled = true;
否则,用户可能会遵循以下顺序:

  • 用户输入有效的用户名和密码
  • 您的代码验证条目并启用登录按钮
  • 用户将登录名或密码更改为无效内容
  • 用户单击提交按钮

  • 登录失败时,您不能从validateLogin重新获得r
    false
    。请确保在将用户名和密码发送到查询字符串之前对其进行加密。我也不能使用return false
    document.getElementById("submit").disabled = true;