Оповещение, если форма пуста - PullRequest
2 голосов
/ 29 февраля 2012

Как проверить, что вся форма пуста, и предупредить об этом?Форма должна быть в состоянии отправить, даже если есть несколько пустых входов.

Редактировать : Возможно, мне следовало сказать, что это должен быть JavaScript или jQuery.

И лучшее описание: у меня есть форма с одной частью, котораясодержит 10 полей ввода, вам нужно только заполнить одно.Другая часть, вам нужно только заполнить имя и телефон или адрес электронной почты, но это 4 поля, которые вы можете заполнить информацией.И, наконец, флажок, удостоверяющий, что пользователь знает, что он или она не заполнил всю форму.

Я знаю, как проверить все поля и предупредить, если одно из них пустое.Но я не знаю, как проверить, не заполнена ли вся форма, и предупредить об этом.

Ответы [ 5 ]

2 голосов
/ 29 февраля 2012

Вот быстрый и грязный способ использования чистого JavaScript:

function checkForm​(oForm) {
    for (var i = 0; i < oForm.elements.length; i++) {
        if (GetElementValue(oForm.elements[i]).length > 0)
            return true;
    }
    alert("all empty");
    return false;
}

function GetElementValue(element) {
    if ((element.type === "checkbox" || element.type === "radio") && element.checked === false)
        return "";
    return element.value;
}

Живой тестовый кейс .

1 голос
/ 29 февраля 2012

Я знаю, как проверить все поля и предупредить, если одно из них пустое. Но я не знаю, как проверить, не заполнена ли вся форма, и предупредить об этом.

Если это так, просто вставьте логический чек в ваш код

var haveAnyErrorsTriggered = false;
// loop through fields and if any are empty change the haveAnyErrorsTriggered to true
// then
if(haveAnyErrorsTriggered){alert("One or more fields are empty.");}

если вы хотите проверить, не заполнена ли вся форма, просто сделайте наоборот

var isAtLeastOneFieldFull = false;
// loop through fields and if any are not empty change the isAtLeastOneFieldFull to true
// then
if(!isAtLeastOneFieldFull){alert("all the fields are empty");}
1 голос
/ 29 февраля 2012

создайте такой метод проверки в JS (расширите Switch для других элементов формы, таких как радио или входы флажков):

function validateForm(domForm) {
    var elements = domForm.elements;
    var hasData = false;

    var isAEmptyString = function(string) {

        if(string) {
            return string.length() == 0;
        }

        return true;
    };


    for(var i = 0; i < elements.length; i++) {
        var element = elements[i];
        switch(element.tagName.toLowerCase()) {
            case 'textarea':
                if(!isAEmptyString(element.innerHTML)) {
                    return true;
                }
                break;
            case 'input':
                if(!isAEmptyString(element.value)) {
                    return true;
                }
                break;
            case 'select':
                if(element.selectedIndex >= 0) {
                    return true;
                }
                break;
        }
    }
    return false;
};

вы можете вызвать его в своей форме в обработчике SubSubmit

<form onsubmit="return validateForm(this);">
<textarea name="a"></textarea>
<input type="text" name="b"></input>
<select name="c">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
</select>
<input type="submit" />
</form>
0 голосов
/ 29 февраля 2012

Может быть, пример слушателя полей формы, который я однажды приготовил в , этот jsfiddle может помочь вам в дальнейшем?Обратите внимание, что проверка на стороне клиента никогда не будет достаточной.Любой может подделать javascript на вашей странице, поэтому вам всегда нужно проверять и сторону сервера форм.

0 голосов
/ 29 февраля 2012

Вы говорите о проверке формы Javascript. Создайте функцию Javascript (называемую скажем validateForm), которая проверяет поля в вашей форме и выдает предупреждение, если обнаруживает ошибку. Он должен возвращать истину, если форма должна быть отправлена, и ложь, если есть ошибка. Затем в теге HTML-формы добавьте предложение onsubmit = "return validateForm ()", где validateForm - это имя вашей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...