#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()
};
});
Комментарии:
1. Спасибо за вашу помощь. Это кажется хорошим подходом. К сожалению, когда я пытаюсь это сделать, я не получаю никакого текста из входных данных; только [Object, Object, Object] и undefined . Есть мысли …? Что я делаю не так?
2. Поскольку каждый элемент в массиве является объектом, который имеет
num
desc
свойства и .