Как в FormData получить данные из select multiple?

Добрый день.
Есть на странице форма, в которой есть поле
<select name="status[]" multiple>

Данные из формы получаю через
var form_data = new FormData(this_form);
console.log(form_data);


При отправке формы я вижу, что в списке отправленных полей есть записи
status[]: "5"

То есть только первое выбранное значение у селекта, а не все. Как правильно в таком случае получать все данные из формы?
  • Вопрос задан
  • 636 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Работает из коробки
YSNMGvD.png

Если хотите получать собранные данные из скрипта, то посмотрите в справочник. Там есть entries(), keys(), get(), getAll() и другие методы.
Ответ написан
Комментировать
Есть костыльное решение:

let sendData = {}, sendDataIndex = {},
    postData = new FormData(form);

for(const pair of postData.entries()) {

    if (postData.getAll(pair[0]).length > 1) {
        pair[0] = pair[0].replace(/\[\]/, "");

        if (sendDataIndex[pair[0]] === undefined) {
            sendDataIndex[pair[0]] = 0;
        } else {
            sendDataIndex[pair[0]]++;
        }

        pair[0] += "[" + sendDataIndex[pair[0]] + "]";
    }

    sendData[pair[0]] = pair[1];

}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы