Вы можете использовать селектор атрибутов , заканчивающийся $
.
. При этом не имеет значения, каким будет $item['id']
, вы все равно найдете их с окончаниемa
или b
и т. Д.
$('input[name$="a"]').on('change', function() {...});
Затем, просто возьмите идентификационную часть номера , используя slice()
, получите все просто, как показано ниже:
Фрагмент стека
$('input[name$="a"]').on('change', function() {
var selected = $(this),
val = selected.val(),
id = selected.attr('name').slice(0,-1);
if (val == "X") {
$('input[name="'+id+'b"]:checked').prop("checked", false);
return false;
}
$('input[name="'+id+'b"][value="' + val + '"]').prop("checked", true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="test">
<input type="radio" required="required" name="1a" value="1">1
<input type="radio" required="required" name="1a" value="X">X
<input type="radio" required="required" name="1a" value="2">2
<br />
<input type="radio" required="required" name="1b" value="1">1
<input type="radio" required="required" name="1b" value="2">2
<br /><br />
<input type="radio" required="required" name="2a" value="1">1
<input type="radio" required="required" name="2a" value="X">X
<input type="radio" required="required" name="2a" value="2">2
<br />
<input type="radio" required="required" name="2b" value="1">1
<input type="radio" required="required" name="2b" value="2">2
</form>