Всем привет! Есть форма, в которой нужно заносить значения из input в массив.
Проблема в том, что когда использую each, то текстовый инпут заносится нормально, а радио и чекбокс всегда undefined.
Но если их просто вынести за each, то они отображаются нормально. Что за хрень такая? :)
Прикладываю код, всем заранее спасибо за ответы!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script>
</head>
<body>
<form>
<div class="item">
<input class='text' type="text" placeholder="Текстовое поле" value='Текстовое поле'>
</div>
<div class="item">
<input class='checkbox-checked checkbox' type="checkbox" name='checkbox' value='чекбокс1'>
<input class='checkbox' type="checkbox" name='checkbox' value='чекбокс2'>
</div>
<div class="item">
<input class='radio-checked radio' type="radio" name='radio' value='радио-кнопка1'>
<input class='radio' type="radio" name='radio' value='радио-кнопка2'>
</div>
</form>
<script>
var array = [];
$('.item').each(function(){
var th = $(this);
var text = th.find('.text').val();
var radio = th.find('.radio-checked').val();
var checkbox = th.find('.checkbox-checked').val();
if (text != '') {
array.push(text);
}
else if (radio != '') {
array.push(radio);
} else if (checkbox != '') {
array.push(checkbox);
}
});
console.log(array);
var textVal = $('.item .text').val();
var radioVal = $('.item .radio-checked').val();
var checkboxVal = $('.item .checkbox-checked').val();
console.log(textVal);
console.log(radioVal);
console.log(checkboxVal);
</script>
</body>
</html>