我怎样才能让innerHtml 只写一次错误?
Posted
技术标签:
【中文标题】我怎样才能让innerHtml 只写一次错误?【英文标题】:How can i make innerHtml writes error only once? 【发布时间】: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' 就像其他人指出的那样使用=
【参考方案1】:
只需删除=
之前的+
,如下所示
errortable.innerHTML += 'Two pass dosent match';
或者这样做
errortable.innerHTML = '';
errortable.innerHTML += 'Two pass dosent match';
【讨论】:
以上是关于我怎样才能让innerHtml 只写一次错误?的主要内容,如果未能解决你的问题,请参考以下文章
我怎样才能在“.innerHTML”中添加 <g:textField>?
每次我运行 pyinstaller 可执行文件时,pyngrok 都会下载 ngrok。我怎样才能让它只下载一次ngrok?