【发布时间】:2021-02-25 03:05:31
【问题描述】:
所以我正在构建一个要求用户填写字段的表单。如果他们不这样做,或者如果他们填写的字段不正确,则这些字段周围会有一个红色边框,并会出现一条错误消息,告诉用户重试。
到目前为止它可以工作,但问题是在填充字段并从字段中移除焦点后它不会移除红色边框。
我的代码如下。
在用户输入有效信息后和提交之前,我需要在我的 JavaScript 函数中进行哪些更改以使红色边框和错误消息立即消失?
--- 请只使用原生 javascript,不要使用 jQuery ---
const errorMessage1 = document.getElementById('errorMessage1');
const submitButton = document.getElementById('submitButton');
const name = document.getElementById('name');
const email = document.getElementById('mail');
function nameAndEmailValidation() {
if (name.value === '' && email.value === '') {
name.style.border = '7px solid';
name.style.borderColor = 'red';
email.style.border = '7px solid';
email.style.borderColor = 'red';
errorMessage1.style.display = "block";
} else if (name.value === '') {
name.style.border = '7px solid';
name.style.borderColor = 'red';
errorMessage1.style.display = "block";
} else if (email.value === '') {
email.style.border = '7px solid';
email.style.borderColor = 'red';
errorMessage1.style.display = "block";
} else {
email.removeAttribute('border');
email.removeAttribute('borderColor');
errorMessage1.style.display = "none";
}
}
submitButton.addEventListener('click', (e) => {
if (!nameAndEmailValidation()) {
e.preventDefault();
}
});
<form id="form" action="index.html" method="post" novalidate>
<fieldset id="infoSection">
<h3 id="errorMessage1" style="display: none;">
Enter all required information.
</h3>
<legend>Who Are You?</legend>
<label for="name">Name:</label>
<input type="text" id="name" name="user-name" required>
<label for="mail">Email:</label>
<input type="email" id="mail" name="user-email" required>
<button style="font-size:18px" type="submit" id="submitButton">Submit</button>
</fieldset>
</form>
【问题讨论】:
标签: javascript html forms validation