Juslaines,
не ясен момент, как и когда поля будут заполнены, что их заполняет, то и должно открывать блок.
возможный вариант, после загрузки страницы, но лучше это сделать на сервере сразу.
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll(".form-check").forEach(div => {
let nextDiv = div.nextElementSibling;
let filled = Array.from(nextDiv.querySelectorAll("input"), ({
value
}) => value)
.filter(value => value).length;
if (filled) {
nextDiv.style.display = "block";
div.querySelector("input").checked = true;
}
});
})
</script>
</head>
<body>
<div class="row form-check">
<label><input class="form-check-input checkbox" type="checkbox" id="checkbox2" value="checkbox-block-2"> Оплата</label>
</div>
<div class="checkbox-blocks" id="checkbox-block-2" style="display: none;">
<div class="row">
<div class="col"><input name="" value="12345">
</div>
<div class="col"><input name="">
</div>
<div class="col"><input name="">
</div>
<div class="col"><input name="">
</div>
</div>
</div>
<div class="row form-check">
<label><input class="form-check-input checkbox" type="checkbox" id="test" value="test"> test</label>
</div>
<div class="checkbox-blocks" id="checkbox-block-2" style="display: none;">
<div class="row">
<div class="col"><input name="">
</div>
<div class="col"><input name="">
</div>
<div class="col"><input name="">
</div>
<div class="col"><input name="">
</div>
</div>
</div>
</body>
</html>