Как передать значения поля ввода массива из javascript? я заполняю только 1-е значение

Здесь я добавил код getvalue для массива полей ввода с именем ItemName []. Он заполняет только первое значение поля ввода

function getselectedvalue()
{
    var selectedvalue = document.getElementById("ItemName[]").value;
    console.info(selectedvalue);
    $.ajax({
          url: 'fetch.php',
          type: 'post',
          data: { value : selectedvalue },
          dataType: 'JSON',
          success: function(response){
          var len = response.length;
          for(var i=0; i<len; i++){
          var item_desc = response[i].item_desc;
          var selling_price = response[i].selling_price;
          var tax =response[i].tax;
          console.info(item_desc);
          console.info(selling_price);
          console.info(tax);
          document.getElementById("ItemDesc[]").value= item_desc;
          document.getElementById("UnitPrice[]").value= selling_price;

          }
          }
    });
}

У вас не может быть повторяющихся идентификаторов. Используйте ItemDesc[] для имени и уникальных идентификаторов для каждого.

mplungjan 10.10.2018 08:12

Предоставьте свой HTML-код, связанный с этим вопросом.

CodeThing 10.10.2018 08:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
53
3

Ответы 3

Вы не можете использовать имя массива в качестве идентификатора, если их более одного - что я предполагаю, - иначе зачем нужен массив.

Я предлагаю вам использовать это только для имени. Затем вы можете сделать это, чтобы заполнить все, предполагая, что вы много к одному ItemName []

success: function(response) {
  var len = response.length;
  var descs = document.querySelectorAll("name=ItemDesc[]");
  var prices = document.querySelectorAll("name=UnitPrice[]");
  for (var i = 0; i < len; i++) {
    var item_desc = response[i].item_desc;
    var selling_price = response[i].selling_price;
    var tax = response[i].tax;
    descs[i].value = item_desc;
    prices[i].value = selling_price;
  }
}

Вы можете использовать метод map или .each для получения входных данных массива. Пожалуйста, найдите пример ниже:

var selectedvalue = $("input[name='ItemName[]']").map(function(){
return $(this).val();
}).get();

Приведенный ниже код получит все значения текстового поля и передаст данные в виде массива в вашу функцию Ajax.

function getselectedvalue()
{
    var arrayOfValues = $(":input[type='text']").map(function() {
        return $(this).val();
    })
    .get();  
    console.info(arrayOfValues );
    $.ajax({
          url: 'fetch.php',
          type: 'post',
          data: { value : arrayOfValues },
          dataType: 'JSON',
          success: function(response){
          var len = response.length;
          for(var i=0; i<len; i++){
          var item_desc = response[i].item_desc;
          var selling_price = response[i].selling_price;
          var tax =response[i].tax;
          console.info(item_desc);
          console.info(selling_price);
          console.info(tax);
          document.getElementById("ItemDesc[]").value= item_desc;
          document.getElementById("UnitPrice[]").value= selling_price;

          }
          }
    });
}

Другие вопросы по теме