Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2018, 15:27
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Не заполняется FormData из DOM элемента формы
Браузер Firefox 61.
Отрезок кода такой:
https://pastebin.com/gp1RywaK

console.log(document.forms[this.formId]);//Здесь выводится DOM Element все хорошо
let formData = new FormData(document.forms[this.formId]);
console.log(formData);//но formData все равно пустой.

Может из-за того что в форме 4 кнопки?
В песочнице тоже не работает - https://jsfiddle.net/q9zgjfsm/11/
Вот здесь написано что FormData Можно заполнять из элемента. Но уменя до сих пор ничего не работает

https://developer.mozilla.org/en-US/...rmData_Objects
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2018, 15:52
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

неправильно проверял объект FormData. Надо через getAll().
Исправленный вариант - https://jsfiddle.net/q9zgjfsm/16/
НО append() работает, а автозаполнение из формы нет (((
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2018, 15:59
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

delgus, что не так-то?
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2018, 15:59
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

formData.getAll("answers2") возвращает пустой массив, потому что у вас в форме нет чекнутых радио-баттонов.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2018, 16:02
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Nexus,
Спасибо, я сам вот только 2 минуты назад допер)
Тупая ошибка такая
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2018, 16:25
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

delgus,
И еще вы скоро столкнетесь с проблемой с чекбоксами с одинаковыми именами name="answers0".
Ответить с цитированием
  #7 (permalink)  
Старый 03.08.2018, 12:31
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

Dilettante_Pro,
одинаковые имена потому что это ответы на один вопрос, вообще в реализации у меня будет name="Answers[индекс вопроса]". Тоесть на сервере я буду получать массив Answers, если чекбоксы то в массиве Answers[вопрос] окажется массив со значением value выбранных чекбоксов
Ответить с цитированием
  #8 (permalink)  
Старый 03.08.2018, 13:06
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

delgus,
А не лучше ли варианты ответа yes/no выбирать через радио?
А чекбокса для этого достаточно одного.
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2018, 14:11
Интересующийся
Отправить личное сообщение для delgus Посмотреть профиль Найти все сообщения от delgus
 
Регистрация: 27.07.2018
Сообщений: 21

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

1. Туфелька-Инфузория - это...
Бактерия
Вирус
Простейший, одноклеточный организм
Модная обувь
Микроб

Будет возможность выбора одного варианта из нескольких, или множественный выбор и текстовый инпут)
Вы оказались правы - чекбоксы перезатирают друг друга, не понимаю почему я думал что они сохраняются массивом. для каждого чекбокса получается надо свое имя
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2018, 14:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

delgus, можно и массивом.
<input name="someName[]" value="first" type="checkbox"/>
<input name="someName[]" value="second" type="checkbox"/>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Появление элемента в DOM aktep Элементы интерфейса 15 13.02.2016 13:17
Замена DOM элемента другим элементом MaxXxaM Events/DOM/Window 5 04.05.2013 01:24
Тип элемента формы MCTrane Общие вопросы Javascript 6 15.12.2011 08:08
Отправка формы с помощью XMLHttpRequest2 и FormData pav jQuery 3 05.10.2011 10:16
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52