Использование атрибута required:
Просто добавьте атрибут required
к каждому входу, если вы хотите сделать ввод обязательным.
Когда этот атрибут установлен, форма не будет отправлена (и будет отображать сообщение об ошибке), когда ввод пуст (вход также будет считаться недействительным).
Проверьте следующее Фрагмент кода и попробуйте отправить форму без заполнения некоторых или всех полей, чтобы увидеть, как работает атрибут required
:
<form action="#" name="form" method="POST">
<div>
<label>Name</label><br>
<input type="text" name="name" id="name" placeholder="Name" pattern="[a-zA-Z]*" required>
</div>
<div>
<label>Surname</label><br>
<input type="text" name="surname" id="surname" placeholder="Surname" pattern="[a-zA-Z]*" required>
</div>
<div>
<label>Email</label><br>
<input type="email" name="email" id="email" placeholder="Email Address" required>
</div>
<div>
<label>Message</label><br>
<textarea type="message" name="message" id="email" minlength="1" maxlength="200" placeholder="Message(max 200 characters)" required></textarea>
</div>
<input type="submit" name="submit" value="Submit">
</form>
Использование функции JavaScript:
В JS, а также в HTML необходимо исправить несколько вещей:
- Измените
input type="submit"
на button type="button"
, чтобы кнопка отправки запускала функцию в первую очередь вместо прямой попытки отправки формы. Кроме того, не забудьте изменить значение атрибута name
и значение атрибута id
submit
на другое значение, например submitBtn
или submitForm
, так что вы можете вручную запустить метод submit()
позже в функции.
- Добавьте элемент с идентификатором
"eresult"
, где ваша функция проверки может отправить сообщения об ошибках в.
- Добавьте прослушиватель кликов к кнопке отправки, чтобы запустить функцию проверки.
- Измените значение атрибута
id
вашего элемента textarea
на message
.
- Используйте тот же
if/else statement
, который у вас уже есть, но добавьте return false;
к своему выражению else if
и добавьте form.submit()
до вашего окончательного else
заявления выше return true;
.
NB Нам пришлось ранее изменить атрибут name
и id
вашей кнопки отправки, чтобы form.submit()
ссылался на метод submit()
, а не кнопку отправки в функция проверки.
Проверьте и запустите следующий Фрагмент кода для практического примера того, что я описал выше:
/* JavaScript */
document.querySelector("button").addEventListener("click", function(){
var name = document.getElementById('name').value;
var surname = document.getElementById('surname').value;
var message = document.getElementById('message').value;
var email = document.getElementById('email').value;
if(name=='' || surname=='' || message=='' || email==''){
document.getElementById("eresult").innerHTML = "All fields required"
return false;
}
else if(name.length<2){
document.getElementById("eresult").innerHTML = "Name must be atleast 2 charachters"
return false;
}
else{
form.submit();
return true;
}
});
<!-- HTML -->
<form action="#" name="form" method="POST">
<div>
<label>Name</label><br>
<input type="text" name="name" id="name" placeholder="Name" pattern="[a-zA-Z]*">
</div>
<div>
<label>Surname</label><br>
<input type="text" name="surname" id="surname" placeholder="Surname" pattern="[a-zA-Z]*">
</div>
<div>
<label>Email</label><br>
<input type="email" name="email" id="email" placeholder="Email Address">
</div>
<div>
<label>Message</label><br>
<textarea type="message" name="message" id="message" minlength="1" maxlength="200" placeholder="Message(max 200 characters)"></textarea>
</div>
<button type="button" name="submitBtn">Submit</button>
</form>
<div id="eresult"></div>