добавление динамических полей ввода в массив с помощью jquery

#jquery #arrays #user-input

#jquery #массивы #пользовательский ввод

Вопрос:

Прошу прощения, если это неправильная область обсуждения.

Я ищу некоторую помощь по добавлению нескольких пользовательских вводов в массив с помощью jquery.

У меня есть форма, которая динамически добавляет и удаляет поля, как показано здесь (максимум 5, но не всегда может быть 5, минимум 1): динамические входные данные

Я хотел бы просмотреть номер курса и описание и добавить в массив. Например:

 Array 
(
[0] => PT 101, Personal Training 101
[1] => EH 263, Eating Healthy
}
  

В настоящее время я получаю результаты таким образом:

 var courseInfo = $("input[name='course_num\[\]'], input[name='course_desc\[\]']").map(function() { return $(this).val(); }).get().join(",");
  

Я пробовал .toArray, .get и другие методы получения значений, но безуспешно.

Есть предложения?

Спасибо.

Комментарии:

1. Вы пробовали мой ответ?

Ответ №1:

Два входных данных связаны и должны иметь один и тот же родительский элемент:

 <div name="parent">
  <input name="course_num" />
  <input name="course_desc" />
</div>
  

Затем ваш селектор должен основываться на родительском:

 var arr = $("[name='parent']").map(function() {
      return {
        num: $(this).find("input[name='course_num']").val(),
        desc: $(this).find("input[name='course_desc']").val()
      };
  });
  

JSFIDDLE.

Комментарии:

1. Спасибо за вашу помощь. Это кажется хорошим подходом. К сожалению, когда я пытаюсь это сделать, я не получаю никакого текста из входных данных; только [Object, Object, Object] и undefined . Есть мысли …? Что я делаю не так?

2. Поскольку каждый элемент в массиве является объектом, который имеет num desc свойства и .