Member 13273641 Ответов: 1

Как получить значение параметра select в текстовом поле? (Несколько вариантов выбора и текстовое поле)


В настоящее время у меня был следующий код. Я хочу присвоить значение опции select в текстовом вводе. Я не знаю, как зациклить его, так как у меня есть много вариантов выбора.

Вот скрипка

Например, если я выберу

1.а.=4 , 1.Б=3 , 1.с=2 , 1.Д=1,

тогда мой текстовый ввод там если покажет

1.

4 к

3 а

2 в

1 объявление

и так далее по каждому вопросу.Спасибо.Я попробовал свой код, и он просто обнаружил последнюю колонку.

Что я уже пробовал:

$('select[name=qtyQ5]').change(function() {
        $('select[name=qtyQ5] :selected').each(function() 
		{
			var $this = $(this).val();
            $(".numQ5").each(function()
            {	
            	$(this).val($this);
            });
        });
    });

1 Ответов

Рейтинг:
0

Peter Leow

Вы получили то, что просили, с вашим кодом. При каждой итерации внешнего цикла внутренний цикл просто перезаписывает все текстовые поля следующим выбранным значением.
Посмотрите на иерархию DOM каждого набора выбранных элементов:

<ol>
 <li><select>...</select></li>
 <li><select>...</select></li>
 <li><select>...</select></li>
 <li><select>...</select></li>
</ol>

Что вам нужно, так это перенести выбранное значение в соответствующее текстовое поле той же позиции индекса, понятно?
Таким образом, первый шаг состоит в том, чтобы узнать индексный номер li, где происходит изменение выбора в ol, а затем перенести выбранное значение в текстовое поле с тем же индексным номером в классе. Это код, который делает это:
$('select[name=qtyQ5]').change(function() {

    // find the closest li of the changed select
    $li = $(this).closest('li');
    // Find the closest ol then all its lis
    $lis = $li.closest('ol').find('li');
    // find the index of the li of the changed select
    i = $lis.index($li);
    
    $('.numQ5').eq(i).val($(this).val());

});

Видеть демонстрация[^].