I am trying to make a custom validation for my form. We won't know in future how many boltons we are going to add / remove from our form.
It should check if radio buttons are not checked add "error class" to section.
The problem is any radio button I click just effect the last section.
function checkBoltons(){
var boltons = [1,2,3];
for (var i of boltons) {
var $bolton = $('#bolton-' + i);
if ( $('input[name="data[ObeBolton]['+i+']"]').is(':checked') == true ) {
$bolton.removeClass('section-error');
} else {
$bolton.addClass('section-error');
}
$('input[name="data[ObeBolton]['+i+']"]:radio').change(function(){
$('#bolton-' + i).removeClass('section-error');
});
}
}
$(".checkBoltons").click(function(){
checkBoltons();
})
.section-error {
background-color: rgb(255, 218, 218);
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="bolton-1">
<p>bolton-1</p>
<input type="radio" name="data[ObeBolton][1]" value="1" />
<input type="radio" name="data[ObeBolton][1]" value="2" />
</div>
<div id="bolton-2">
<p>bolton-2</p>
<input type="radio" name="data[ObeBolton][2]" value="3" />
<input type="radio" name="data[ObeBolton][2]" value="4" />
</div>
<div id="bolton-3">
<p>bolton-3</p>
<input type="radio" name="data[ObeBolton][3]" value="5" />
<input type="radio" name="data[ObeBolton][3]" value="6" />
</div>
<button class="checkBoltons">Check Boltons</button>