Показать сообщение отдельно
  #9 (permalink)  
Старый 08.05.2016, 11:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если только осваиваем, то жмем F12 и в отладчике смотрим исходный html-код страницы. Если форма ваша и ее списки на ней, то нет никакой динамики их добавления. Следовательно достаточно будет при загрузке документа установить обработчик (и) необходимые.

$(function() {
    $('.forname').on('change', "select", function() {
        var a = $.map($('.forname').find('option:selected'), function(i) {
            return i.text
        })
        //а - массив содержащий значения выбранных опций
    });
});


В данном случае обработка изменений списков делегируется форме, что работало бы и в случае если бы форма была на странице, а списки динамически добавлялись. Но можно было написать и $('select').change(function ..., если списки уже на странице.

Примечание: метод $.map нужен, если списков действительно несколько, что по коду явно так. Но, каждая опция списка имеет значение идентификатора - p'.$parent_id, которые сервер и будет обрабатывать получая форму, то есть передавать при этом тексты выбранных опций это и мусор, и глупо. Текст их сервер и без клиента знает, а для информации клиента что он выбрал служат сами списки. Если охота "приукрасить" это или списков много, то тексты можно помещать не в поле ввода, а любой html элемент.

Последний раз редактировалось laimas, 08.05.2016 в 11:19.
Ответить с цитированием