Довольно просто зацикливаться на элементах формы и проверять, что у людей с определенным классом есть значение, которое соответствует определенным критериям:
<form name="f0" onsubmit="return validate(this);">
<input name="inp0" class="required" >
<input name="inp2" class="required" >
<input type="submit">
</form>
<script type="text/javascript">
var validate = (function() {
var reClass = /(^|\s)required(\s|$)/; // Field is required
var reValue = /^\s*$/; // Match all whitespace
return function (form) {
var elements = form.elements;
var el;
for (var i=0, iLen=elements.length; i<iLen; i++) {
el = elements[i];
if (reClass.test(el.className) && reValue.test(el.value)) {
// Required field has no value or only whitespace
// Advise user to fix
alert('please fix ' + el.name);
return false;
}
}
}
}());
</script>
Выше приведен только пример, чтобы показать стратегию.
Использование предупреждения менее чем оптимально, обычно область выделяется рядом с необходимыми полями, чтобы можно было писать сообщения об ошибках, чтобы направить внимание пользователя на недопустимые поля.Вы также можете установить все сообщения об ошибках за один раз, а затем возвратить, а не по одному за раз.
Редактировать - обновить несколько ошибок
У элемента, смежного с каждым элементом управления, нужно проверить с помощьюидентификатор, как у элемента, поэтому, если вход называется firstName , элемент ошибки может иметь идентификатор firstName-err .При обнаружении ошибки легко получить связанный элемент и поместить в него сообщение.
Чтобы сделать все сразу, используйте флаг, чтобы запомнить, есть ли какие-либо ошибки, скажите «isValid», который по умолчанию имеет значение true.Если вы обнаружите какие-либо ошибки, установите значение false.Затем верните его в конце.
Используя приведенный выше пример, HTML может выглядеть так:
<input name="firstName" class="required" >
<span id="firstName-err" class="errMsg"></span>
Ошибки для firstName будут записаны в firstName-err .
В сценарии, если обнаружена ошибка:
// At the top
var isValid = true;
var errEl;
...
// When entering the for loop
el = elements[i];
errEl = document.getElementById(el.name + '-err');
// when error found
isValid = false;
if (errEl) errEl.innerHTML = '... error message ...';
// else if error not found
// remove message whether there is one or not
if (errEl) errEl.innerHTML = '';
...
// At the end
return isValid;
Вы также можете использовать всплывающее окно для отображения ошибок, однако это действительно раздражает и пользователейдолжен закрыть всплывающее окно, чтобы исправить ошибки.Гораздо лучше просто написать рядом с каждым, что не так, и позволить пользователю исправить вещи в свое время.