Как записать выбранное значение в скрытый инпут?
тоесть чекнутое значение в input type="hidden" с name
в первом блоке name="block1_check" во втором name="block2_check"
пробую так
$(document).on('change', '.reg__col', function(e) {
const col = t.closest('.reg__col');
if (col) {
$(`[name="${t.name}_check"]`).val(col.innerText.trim());
}
})
<div class="reg__col">
<input id="r_1" type="radio" class="reg__block" checked="" name="block1">
<label for="r_1" class="reg__elem">не указано</label>
</div>
<div class="reg__col">
<input id="r_2" type="radio" class="reg__block" name="block1">
<label for="r_2" class="reg__elem">текст 1</label>
</div>
<div class="reg__col">
<input id="r_3" type="radio" class="reg__block" name="block1">
<label for="r_3" class="reg__elem">текст 2 </label>
</div>
<input type="hidden" name="block1_check" value="не указано" >
____________________________________________________________
<div class="reg__col">
<input id="r_4" type="radio" class="reg__block" checked="" name="block2">
<label for="r_4" class="reg__elem">не указано</label>
</div>
<div class="reg__col">
<input id="r_5" type="radio" class="reg__block" name="block2">
<label for="r_5" class="reg__elem">текст lorem 1</label>
</div>
<div class="reg__col">
<input id="r_6" type="radio" class="reg__block" name="block2">
<label for="r_6" class="reg__elem">текст lorem 2</label>
</div>
<input type="hidden" name="block2_check" value="не указано" >
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ответы (1 шт):
Автор решения: DiD
→ Ссылка
$(document.forms[0]).on('input', function(e) {
// я не в курсе сколько у вас блоков
// возможно, имеет смысл использовать цикл
// Но я сделал проще
$('input[name="block1_check"]')
.attr('value',$('input[name="block1"]:checked + label').html());
// Как бы код ищет выделенный элемент, потом берет тег label, следующий за ним,
// и всталяет как значение весь html-код, внутри этого тега label;
$('input[name="block2_check"]')
.attr('value',$('input[name="block2"]:checked + label').html());
})
<form> <!-- тег, открывающий форму -->
<div class="reg__col">
<input id="r_1" type="radio" class="reg__block" checked="" name="block1">
<label for="r_1" class="reg__elem">не указано</label>
</div>
<div class="reg__col">
<input id="r_2" type="radio" class="reg__block" name="block1">
<label for="r_2" class="reg__elem">текст 1</label>
</div>
<div class="reg__col">
<input id="r_3" type="radio" class="reg__block" name="block1">
<label for="r_3" class="reg__elem">текст 2 </label>
</div>
<!-- Здесь заменил "hidden" на "text" чтобы было видно значение.
Код будет работать одинакого со скрытым элементом как с текстовым -->
<input type="text" name="block1_check" value="не указано" >
____________________________________________________________
<div class="reg__col">
<input id="r_4" type="radio" class="reg__block" checked="" name="block2">
<label for="r_4" class="reg__elem">не указано</label>
</div>
<div class="reg__col">
<input id="r_5" type="radio" class="reg__block" name="block2">
<label for="r_5" class="reg__elem">текст lorem 1</label>
</div>
<div class="reg__col">
<input id="r_6" type="radio" class="reg__block" name="block2">
<label for="r_6" class="reg__elem">текст lorem 2</label>
</div>
<!-- Здесь заменил "hidden" на "text" чтобы было видно значение.
Код будет работать одинакого со скрытым элементом как с текстовым -->
<input type="text" name="block2_check" value="не указано" >
</form> <!-- тег, закрывающий форму -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>