@andrey_levushkin

Как собрать все значения input со страницы в массив?

Допустим, на странице есть N полей input
<input id="testId" class="testClass" type="number">
<input id="testId" class="testClass" type="number">
...
<input id="testId" class="testClass" type="number">

Как собрать с них значения в 1 массив?
Со всех полей
  • Вопрос задан
  • 3776 просмотров
Решения вопроса 3
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Примерно так:
Array.from(document.querySelectorAll('input')).map(inputElement => inputElement.value)
Ответ написан
Комментировать
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
Есть много способов
Первое, что пришло в голову:
<input name="test" class="testClass" type="number">
<input name="test" class="testClass" type="number">
<input name="test" class="testClass" type="number">

function getValues() {
  const numbers = [];
  const inputs = document.getElementsByName('test');

  for (const input of inputs) {
    numbers.push(Number(input.value));
  }

  return number;
}
Ответ написан
Комментировать
Tim-A-2020
@Tim-A-2020
Если нужны только значения
[...document.querySelectorAll('input')].map(v => v.value);

Или
Array.from(document.querySelectorAll('input'), v=> v.value);


Если нужны и другие атрибуты, то можно собрать такой массив объектов
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
atomrus1993
@atomrus1993
// Получаем все элементы input на странице
var inputs = document.getElementsByTagName('input');

// Создаем пустой объект для хранения данных
var inputData = {};

// Проходимся по всем элементам input и добавляем их значения в объект
for (var i = 0; i < inputs.length; i++) {
  var input = inputs[i];
  inputData[input.name] = input.value;
}

// Выводим объект с данными в консоль
console.log(inputData);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы