清除验证错误JavaScript
我一直在尝试在用户成功输入并完成所需的验证规则后清除消息,但是我似乎无法清除所有验证错误,我确实环顾四周并尝试了所建议的内容,但似乎不起作用。我认为通过放置空的innerHTML字符串可能会像我在其他帖子中所说的那样起作用清除验证错误JavaScript,javascript,Javascript,我一直在尝试在用户成功输入并完成所需的验证规则后清除消息,但是我似乎无法清除所有验证错误,我确实环顾四周并尝试了所建议的内容,但似乎不起作用。我认为通过放置空的innerHTML字符串可能会像我在其他帖子中所说的那样起作用 <form action ="" method="POST"> <span id="tryErr"></span><br> <input type="text" id="username" placeho
<form action ="" method="POST">
<span id="tryErr"></span><br>
<input type="text" id="username" placeholder="Username"><br>
<span id="usernameErr"></span><br>
<input type="text" id="email" placeholder="Email address"><br>
<span id="emailErr"></span><br>
<input type="password" id="password" placeholder="Password"><br>
<span id="passwordErr"></span><br>
<input type="submit" value="Submit" onclick=" return confirmValidation();">
</form>
JS
函数validateUsername(用户名,错误){
var username=document.getElementById(“用户名”).value,
error=document.getElementById(“usernameErr”);
如果(用户名==null | |用户名==“”){
return error.innerHTML=“需要用户名”;
返回false;
}
如果(!username.match(/^[0-9a-z]+$/)| | username.length<3),则为else{
return error.innerHTML=“用户名必须是字母数字和三个字符长”;
返回false;
}
否则{
返回error.innerHTML=“”;
返回true;
}
}
函数validatePassword(密码,错误){
var password=document.getElementById(“密码”).value,
error=document.getElementById(“密码错误”);
如果(密码==null | |密码==“”){
return error.innerHTML=“需要密码”;
返回false;
}
else if(password.length<7){
return error.innerHTML=“密码长度必须为七个字符”;
返回false;
}
否则{
返回error.innerHTML=“”;
返回true;
}
}
函数validateEmail(电子邮件,错误){
var email=document.getElementById(“电子邮件”).value,
apos=email.indexOf(“@”),
dotpos=email.lastIndexOf(“.”),
error=document.getElementById(“emailErr”);
如果(email==null | | email==“”){
return error.innerHTML=“需要电子邮件”;
返回false;
}
如果(apos<1 | | dotpos apos<2 | | dotpos==(email.length-1)){
return error.innerHTML=“请输入有效的电子邮件”;
返回false;
}
否则{
返回error.innerHTML=“”;
返回true;
}
}
功能确认验证(e){
事件.预防违约(e);
如果(!validateUsername()){
返回false;
}
如果(!validatePassword()){
返回false;
}
如果(!validateEmail()){
返回false;
}
否则{
//在这里做点聪明的事
}
}
您应该对输入类型使用onchange事件。
像
您应该对输入类型使用onchange事件。像A我看到了,所以onclick=“return confirmValidation();总体上是无用的吗?是的,您可以删除那个
<script type="text/javascript">
function validateUsername(username, error){
var username = document.getElementById("username").value,
error = document.getElementById("usernameErr");
if(username == null || username==""){
return error.innerHTML = "Username is required";
return false;
}
else if(!username.match(/^[0-9a-z]+$/) || username.length < 3){
return error.innerHTML = "Username must be alphanumeric and three characters long";
return false;
}
else{
return error.innerHTML = "";
return true;
}
}
function validatePassword(password, error){
var password = document.getElementById("password").value,
error = document.getElementById("passwordErr");
if(password == null || password==""){
return error.innerHTML = "Password is required";
return false;
}
else if(password.length < 7){
return error.innerHTML = "Password must be seven characters long";
return false;
}
else{
return error.innerHTML = "";
return true;
}
}
function validateEmail(email, error){
var email = document.getElementById("email").value,
apos = email.indexOf("@"),
dotpos = email.lastIndexOf("."),
error = document.getElementById("emailErr");
if(email == null || email==""){
return error.innerHTML = "Email is required";
return false;
}
if (apos < 1 || dotpos-apos < 2 || dotpos == (email.length - 1)){
return error.innerHTML = "Please enter a valid email";
return false;
}
else{
return error.innerHTML = "";
return true;
}
}
function confirmValidation(e){
event.preventDefault(e);
if(!validateUsername()){
return false;
}
if(!validatePassword()){
return false;
}
if(!validateEmail()){
return false;
}
else{
//do something clever here
}
}
</script>
<input type="text" id="username" placeholder="Username " onchange="validateUsername()">