<option> disabled выпадает из serializeArray(). Я в тупике

321
29 августа 2017, 14:04

Классический пример

<select name="auto" disabled>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="vw">VW</option>
  <option value="audi">Audi</option>
</select>

Если мы будем передавать эту форму через ajax и сборку в массив через serializeArray(), то этот SELECT не передается.

Если параметр "disabled" убрать - то передается.

Как решить головоломку, если на этом SELECT мне нужно оставить параметр disabled?

Пример кода подтверждает: https://jsfiddle.net/#&togetherjs=5ajiUJiogj

Answer 1

В итоге решение складывается из двух вариантов:

  1. Снимать disabled перед отправкой и ставить обратно
  2. Создать копию этого поля с атрибутом hidden и записывать туда результаты.
Answer 2
var ds =  $('#id').find('select:disabled'); // Список отключенных select этой формы
ds.prop('disabled', false); // Включаем все
var data =  $('#id').serializeArray(); // Готовим данные для отправки
ds.prop('disabled', true); // Отключаем те, которые были отключены
READ ALSO
Meteor js - почему insert добавляет максимум 1000 строк?

Meteor js - почему insert добавляет максимум 1000 строк?

В итоге создаётся лишь 1000 (чуть больше)Почему?

279
Как определить состояние setInterval?

Как определить состояние setInterval?

ПриветДопустим, есть код:

482