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

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

27.03.2019, 23:59. Показов 11842. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru