Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1192 / 761 / 128
Регистрация: 10.03.2012
Сообщений: 4,916

Проверить поля формы на заполнение

13.01.2023, 14:03. Показов 398. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP/HTML
1
2
3
4
5
6
7
8
<form action="">
  <div class="row"><input type="text" name="i1" id="i1"/></div>
  <div class="row"><input type="text" name="i2" id="i3"/></div>
  <div class="row"><input type="text" name="i3" id="i4"/></div>
  <div class="row"><input type="text" name="i4" id="i4"/></div>
  <div class="row"><input type="text" name="i5" id="i5"/></div>
  <div class="row"><input type="button" value="Отправить" /></div>
</form>
Проверить поля формы на заполнение.
1) Добавьте в button функцию check(). Функция должна проверять заполненность полей и отправлять форму только когда все поля заполнены
2) В функции получить ссылку на коллекцию элементов input формы
3) Пройти в цикле (обычный for) по всем элементам:
Если элемент содержит пустое поле value, то окрасить его рамку в красный цвет
Если все поля заполнены - разрешить отправку формы
Если хотя бы одно поле не заполнено - выводить уведомление и форму не отправлять
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2023, 14:03
Ответы с готовыми решениями:

Проверить поля формы при отправке
Добрый день! Помогите, пожалуйста! Нужно сделать, чтобы после правильного заполнения формы и нажатии на кнопку все проверилось и...

Проверить, отмечены ли поля формы, через цикл.
Задача такая, если хотя бы одно поле (Наименование товара) не отмечено, то должно появится сообщение &quot;Введите данные&quot;. Если уже...

Заполнение первого поля формы при нажатии на ссылку
Нужен самый простейший скрипт для такой задачи: на странице несколько блоков, каждый имеет ссылку например Заказать. При нажатии скажем на...

3
416 / 307 / 113
Регистрация: 28.08.2013
Сообщений: 829
13.01.2023, 15:24
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Form</title>
        <style>
            html, body {
                width: 100%;
                height: 100%;
                margin: 0px;
                padding: 0px;
            }
            body {
                display: flex;
                justify-content: center;
                align-items: center;
            }
            form {
                display: flex;
                justify-content: center;
                align-items: flex-start;
                flex-direction: row;
                flex-wrap: wrap;
                flex-basis: 23%;
                gap: 15px;
                padding: 15px;
                border:  1px solid #303841;
                border-radius: 5px;
                background-color: #fff;
                box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
            }
            label {
                display: flex;
                flex-basis: 30%;
            }
            input[type="text"] {
                display: flex;
                flex-basis: 60%;
            }
            input[type="submit"] {
                display: flex;
                flex-basis: 60%;
            }
            .red {
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <form name="formItems">
            <label for="i0">Item 1</label>
            <input type="text" name="i0" id="i0">
            <label for="i1">Item 2</label>
            <input type="text" name="i1" id="i1">
            <label for="i2">Item 3</label>
            <input type="text" name="i2" id="i2">
            <label for="i3">Item 4</label>
            <input type="text" name="i3" id="i3">
            <label for="i4">Item 5</label>
            <input type="text" name="i4" id="i4">
            <input type="submit" name="btnSend" value="Отправить">
        </form>
        <script>
            const form = document.forms.formItems;
            if(form && form.btnSend){
                form.btnSend.addEventListener('click', (event) => {
                    event.preventDefault();
                    const inputs =  form.querySelectorAll('input[type="text"]');
                    const data = {};
                    for(let i=0; i<inputs.length; i++){
                        if(!inputs[i].value){
                            inputs[i].classList.add("red");
                            break;
                        }
                        else{
                            inputs[i].classList.remove("red");
                            data[inputs[i].name] = inputs[i].value;
                        }
                        if(i == inputs.length-1){
                            ajaxRequest(data);
                        }
                    }
                });
            }
            function ajaxRequest(data){
                console.log(data);
                // some code
            }
        </script>
    </body>
</html>
2
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
13.01.2023, 15:33
Цитата Сообщение от kidASM Посмотреть сообщение
JavaScript
1
2
3
4
if(!inputs[i].value){
    inputs[i].classList.add("red");
    break;
}
Я бы не делал здесь break. Пусть обновит статус всех полей.
1
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
13.01.2023, 16:01
HTML5
1
2
3
4
5
6
7
8
<form action="">
  <div class="row"><input type="text" name="i1" id="i1"/></div>
  <div class="row"><input type="text" name="i2" id="i2"/></div>
  <div class="row"><input type="text" name="i3" id="i3"/></div>
  <div class="row"><input type="text" name="i4" id="i4"/></div>
  <div class="row"><input type="text" name="i5" id="i5"/></div>
  <div class="row"><input type="button" onclick="check(this)" value="Отправить" /></div>
</form>
JavaScript
1
2
3
4
5
6
7
8
9
10
function check(btn) {
    let form = btn.closest('form');
    let chk = [...form.querySelectorAll('[name]')].filter(n => {
        n.style.border = n.value.trim() ? '' : '3px solid red';
        return !n.value.trim();
    });
    
    if(chk.length) setTimeout(() => alert('Заполните все поля'));
    else form.submit();
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2023, 16:01
Помогаю со студенческими работами здесь

Не могу проверить заполнение поля "Дата" в коде формы
Возникла проблема - на форме есть поле формата ДАТА, в зависимости от его значения хочу выполнять определенные действия.. Если ставить...

Автоматическое заполнение поля формы
Здравствуйте! У меня есть несколько таблиц в базе данных, например: class c_nar(models.Model): dnar =...

Автоматическое заполнение поля формы
Здравствуйте уважаемые форумчане. :help: Ищу наиболее оптимальное решение своего скромного задания. 1. Две таблицы...

Автоматическое заполнение в поля таблицы (формы)
Здравствуйте! Уже нет сил, ничего не получается, что описано в подобных темах на форуме (по видимому руки не из того места растут...) у...

Заполнение поля формы из предыдущей страницы
День добрый! Честно говоря не знаю как правильно это называется, но на примере думаю всё станет ясно. Есть страница товара и есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru