【发布时间】:2020-11-28 04:27:26
【问题描述】:
我有一个问题,我在 javascript 中进行了表单验证,经过所有验证检查后,我输入了innerHtml += "actually error message",问题是我点击提交按钮多少次它会写出消息。有人可以帮我解决这个问题吗?或者使这个更优雅或更好的逻辑。我是初学者。
function regvalidate() {
var errortable = document.getElementById('log');
var x = document.forms["regform"]["username"].value;
var y = document.forms["regform"]["email"].value;
var z = document.forms["regform"]["pass1"].value;
var b = document.forms["regform"]["pass2"].value;
if (x == "" || y == "" || z == "" || b == "") {
errortable.innerHTML = 'Cant be empty field';
return false;
}
var regexEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
var email = document.getElementById("email");
if (regexEmail.test(email.value)) {} else {
errortable.innerHTML += 'Invaild email address';
return false;
}
password1 = regform.pass1.value;
password2 = regform.pass2.value;
if (password1 != password2) {
errortable.innerHTML += 'Two pass dosent match';
return false;
}
}
<div id="log"></div>
<form id="regform" class="form-signin" action="#" method="post">
<input type="text" id="username" class="form-control" placeholder="username" name="username">
<input type="email" id="email" class="form-control" placeholder="email" name="email">
<input type="password" id="pass1" class="form-control" placeholder="password" name="password_1">
<input type="password" id="pass2" class="form-control" placeholder="password again" name="password_2">
</br>
<button class="btn btn-lg btn-primary btn-block" type="submit" onClick="return regvalidate()" name="register_btn">Register</button>
</form>
【问题讨论】:
-
只需使用
=而不是+=。 -
您可以使用
errortable.innerHTML = "thing"而不是+=。这会让你一次显示一个错误。 -
如果您不想添加到已经存在的内容,为什么首先使用
+=? -
+=变为 errortable.innerHTML + errortable.innerHTML = 'your string' 就像其他人指出的那样使用=
标签: javascript html forms validation innerhtml