Обычно несколько элементов управления формы (например, <input>
, <textarea>
, <select>
, et c) должны быть внутри тега <form>
. Кроме того, описанное поведение называется проверкой формы , для которого требуется, чтобы упомянутый тег <form>
был вызван "submit"
событием .
Следующие демонстрационные функции HTML
Также JavaScript предназначен для отображения сообщения, когда любая пара из <input>
имеет .value
, а другая - нет .
- Сообщение:
<output>Complete data input</output>
Эта проверка псевдоформы запускается всякий раз, когда пользователь вводит данные в <input>
, а затем клики (иначе "blur"
событие). Вся эта объединенная цепочка действий является событием "change"
.
Тег <form>
зарегистрирован для события "change"
, поэтому, если какой-либо из <input>
в пределах <form>
- источник события (он же event.target
- <input>
, при котором пользователь запускает событие "change"
).
const form = document.forms[0];
form.onchange = reqData;
function reqData(event) {
let origin = event.target;
if (origin.tagName === 'INPUT') {
const parent = origin.parentElement;
const output = parent.querySelector('output');
const inputs = [...parent.querySelectorAll('input')];
let total = inputs.length;
let count = 0;
for (let input of inputs) {
if (input.value) {
count++;
}
}
if (count < total && count > 0) {
output.style.opacity = '1';
} else {
output.style.opacity = '0';
}
}
return false;
}
output {
opacity: 0;
color: tomato
}
<form>
<fieldset>
<input><br>
<input> <output>Complete data input</output>
</fieldset>
<fieldset>
<input><br>
<input> <output>Complete data input</output>
</fieldset>
<fieldset>
<input><br>
<input> <output>Complete data input</output>
</fieldset>
<fieldset>
<input><br>
<input> <output>Complete data input</output>
</fieldset>
</form>