Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/55: Рейтинг темы: голосов - 55, средняя оценка - 4.51
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 164

Получить все инпуты и перебрать

27.03.2019, 23:59. Показов 11886. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как можно получить все инпуты, чтобы потом в дальнейшем проверить их на валидность
Сейчас почему-то не происходит получение

HTML5
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
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>БД  «Студент»</title>
  <link href="styles.css" rel="stylesheet"> <!-- Был кривой путь -->
</head>
<body>
  <header>
 
  <h1> БД «Студент» </h1>
  </header> 
  <nav>
  <input type="button" class="showBD" value="Показать БД" />
  </nav>
  <div class="container">
    <form action="#" class="form">
      <div class="form__wrapper">
        <label class="form__item">
          ФИО Студента:
          <input class="form__item-input" type="text" placeholder="Введите своё ФИО">
        </label>
  
        <label class="form__item">
          Год рождения:
          <input class="form__item-input" type="number" placeholder="Введите дату рождения">
        </label>
  
        <label class="form__item">
          Домашний адрес:
          <input class="form__item-input" type="text" placeholder="Введите свой адрес проживания">
        </label>
  
        <label class="form__item">
          Факультет:
          <input class="form__item-input" type="text" placeholder="Введите свой факультет">
        </label>
  
        <label class="form__item">
          Специальность:
          <input class="form__item-input" type="text" placeholder="Введите свою специальность">
        </label>
  
        <label class="form__item">
          Курс:
          <input class="form__item-input" type="text" placeholder="Введите свой курс">
        </label>
  
        <label class="form__item">
          Учебное заведение:
          <input class="form__item-input" type="text" placeholder="Введите свой вуз">
        </label>
  
        <button class="form__submit" type="submit">Отправить</button>
      </div>
    </form>
  </div>
  <footer>
    <h3>Сделано в рамках учебной практики JS</h3>
  </footer>
<script src="external.js"></script> <!-- Был кривой путь -->
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const showBD = document.querySelector('.showBD');
const mainForm = document.querySelector('.container');
const btnSumbit = document.querySelector('.form__submit');
const formInput = document.querySelectorAll('form__item-input');
 
showBD.addEventListener("click", () => {
    if (mainForm.style.display !== 'none') { 
        mainForm.style.display = 'none';
        showBD.value = "Показать форму";  
    }
 
    else {
        mainForm.style.display = ''; // Стереть в атрибуте none, стиль будет браться из внешнего файла
        showBD.value = "Показать БД"; 
    }
})
 
btnSumbit.addEventListener("click" , () => {
    event.preventDefault();
    formInput.forEach(function(item) {
        console.log(formInput.length);
    });
 
})
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2019, 23:59
Ответы с готовыми решениями:

Не знаю как сделать так, что когда все инпуты в форме соответствовали их паттерну, то переходило на другой файл
У меня сайт пока не в онлайне, поэтому я перехожу по файлам.

Перебрать массив и получить новый
Есть массив $row, который берет данные из базы $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) А вот скрипт, которые выводит...

Перебрать все варианты
Допустим, есть строка &quot;000&quot;. Нужно перебрать все варианты до &quot;111&quot;. Т.е., в данном случае получится: 000 001 010 011 100 101 ...

4
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
28.03.2019, 00:02
Лучший ответ Сообщение было отмечено noname12345 как решение

Решение

noname12345,
JavaScript
1
document.getElementsByTagName(`input`)
1
1 / 1 / 0
Регистрация: 01.11.2017
Сообщений: 164
28.03.2019, 11:07  [ТС]
Qwerty_Wasd, а не подскажешь как получить значение этих форм? Все инпунты получены, количество равно 7, то есть правильно, но у них у всех значение неопределено. Получаю так:
JavaScript
1
formInput.value
Так же пробовал так:
JavaScript
1
formInput.textContent
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
28.03.2019, 17:58
noname12345, для того чтобы получить эти значения, в полях должны быть хоть какие-то данные.
Допустим Вы их ввели, в любом, следующем за логикой, обработчике - можно получить их, просто пробежав по коллекции.
JavaScript
1
let data = Array.from(document.getElementsByTagName(`input`), e => e.value);
И вот у вас массив с этими данными.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
28.03.2019, 19:48
noname12345, смотрю, имена полей в бою пали. Надо бы восстановить, чтобы форма красиво отправилась на сервер.
А вот тип "text" наоборот необязательный. Он по умолчанию.
Если мы не хотим прям сразу отправлять форму, то у кнопки-отправлялки надо явно указать тип "button".
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
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>БД  «Студент»</title>
  <link href="styles.css" rel="stylesheet"> <!-- Был кривой путь -->
</head>
<body>
  <header>
 
  <h1> БД «Студент» </h1>
  </header> 
  <nav>
  <input type="button" class="showBD" value="Показать БД" />
  </nav>
  <div class="container">
    <form class="form" name="f1">
      <div class="form__wrapper">
        <label class="form__item">
          ФИО Студента:
          <input class="form__item-input" name="FullName" placeholder="Введите своё ФИО">
        </label>
  
        <label class="form__item">
          Год рождения:
          <input class="form__item-input" name="YearOfBirth" placeholder="Введите дату рождения">
        </label>
  
        <label class="form__item">
          Домашний адрес:
          <input class="form__item-input" name="HomeAddress" placeholder="Введите свой адрес проживания">
        </label>
  
        <label class="form__item">
          Факультет:
          <input class="form__item-input" name="Faculty" placeholder="Введите свой факультет">
        </label>
  
        <label class="form__item">
          Специальность:
          <input class="form__item-input" name="Specialty" placeholder="Введите свою специальность">
        </label>
  
        <label class="form__item">
          Курс:
          <input class="form__item-input" name="Course" placeholder="Введите свой курс">
        </label>
  
        <label class="form__item">
          Учебное заведение:
          <input class="form__item-input" name="lnstitution" placeholder="Введите свой вуз">
        </label>
  
        <button class="form__submit" type="button">Отправить</button> <!--исправлен тип на "button" -->
      </div>
    </form>
  </div>
  <footer>
    <h3>Сделано в рамках учебной практики JS</h3>
  </footer>
<script src="external.js"></script> <!-- Был кривой путь -->
</body>
</html>
Соответственно, сервер примет красивую форму POST-запросом fetch:
external.js
JavaScript
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
const showBD = document.querySelector('.showBD');
const mainForm = document.querySelector('.container');
const btnSumbit = document.querySelector('.form__submit');
const formInput = document.querySelectorAll('.form__item-input'); // Была забыта точка в селекторе
 
showBD.addEventListener("click", () => {
    if (mainForm.style.display !== 'none') {
        mainForm.style.display = 'none';
        showBD.value = "Показать форму";
    }
 
    else {
        mainForm.style.display = ''; // Стереть в атрибуте none, стиль будет браться из внешнего файла
        showBD.value = "Показать БД";
    }
})
 
btnSumbit.addEventListener("click", async () => {
    // event.preventDefault(); для типа кнопки "button" уже не нужно preventDefault()
 
    // ЗДЕСЬ ВАЛИДАЦИЯ. Если не прошла, то выскочить без продолжения
   
    let form = document.forms[0]; // Выбрали форму
    let data = new FormData(form); // Подготовили данные для отправки в формате multipart/form-data
 
    try {
        let response = await fetch("test.php", {
            method: "POST",
            body: data
        });
        if (response.ok) {
            alert("Отправлено");
        }
        else {
            alert(`${response.status}: ${response.statusText}`);
        }
    }
    catch (e) {
        alert(e.message);
    }
});
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2019, 19:48
Помогаю со студенческими работами здесь

Перебрать в цикле все CheckBox-ы
Как перебрать в цикле все CheckBoxs что есть на форме и установить им свойства или получить значения

Как перебрать все CheckBox'
добрый день, подскажите...Как перебрать все условия ??? Это для 2) а как сделать для 8 CheckBox??? Спасибо)

Перебрать все варианты перестановки
вот есть иверсная запись чисел, нужно в ней сделат ьперестановку например вводиш 3 а оно выводит 123 132 231 213 312 321 using...

Перебрать все возможные комбинации
Доброго времени суток. Столкнулся с такой задачей и не знаю, как подступится. Опишу своими словами. Есть четыре столбика слов. В...

RecordSource - как перебрать все???
Нужно что бы в таблицу выводилось все содержимое базы - как получать имена RecordSource и перебрать все имеющиеся в подключенной базе? ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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