Проблемы с элементом SELECT в форме

Cyrill

Новичок
Проблемы с элементом SELECT в форме

Здравствуйте!

Есть форма, в которой есть элемент <SELECT> с динамическим множественным списком опций (<option>), который формирует пользователь (добавляет, удаляет опции). Каким образом мне передать все опции SELECT-а при submit-е формы, ведь по умолчанию передаются только те опции которые выделены, а мне нужно передать все что есть в элементе. Самый идиотский способ: выделяю все, потом жму отправить, а самый правильный ?

заранее спасибо всем!
 

Фанат

oncle terrible
Команда форума
самый тупой способ - пусть пользователь добавляет и удаляет опции сразу в двух полях - селекте и скрытом
 

boombick

boombick.org
или при сабмите формы заодно передавай и массив options, который доступен через document.getElementById('your_select_field').options
Только сначала его к человеческому виду привести надо =)
 

Cyrill

Новичок
Автор оригинала: boombick
или при сабмите формы заодно передавай и массив options, который доступен через document.getElementById('your_select_field').options
Только сначала его к человеческому виду привести надо =)
а можно чуть подробнее ??
 

boombick

boombick.org
а можно чуть подробнее ??
Куда уж подробнее =)
Вешаешь на сабмит формы свою функцию, которая будет забирать массив, приводить его к виду, нужному тебе и отправлять... Можно тупо нагенерить хидденов из этого массива и добавить в форму...
 

Cyrill

Новичок
Сделал так.
Повесил на форму обработчик события
Код:
onSubmit=return validateForm(this);"
и написал скрипт:
Код:
 function validateForm(sender) {
                        sender.submitButton.disabled = "disabled";

                        for (var cntr=0;document.getElementById("select_el").options.length>cntr;cntr++) {
                            var el = document.createElement("INPUT");
                            el.setAttribute("name","fld_img_id[]");
                            el.setAttribute("value",document.getElementById("select_el").options[cntr].value);
                            el.setAttribute("type","hidden");
                            sender.appendChild(el);
                        }

                        return true;

                    }
теперь при сабмите формы создаются скрытые поля передающие все значения.

Всем спасибо. Тема раскрыта.
 
Сверху