Похоже, что вы делаете небольшую ошибку в своем селекторе "input[name='name1']:checked"
, которая должна вместо этого быть примерно такой: "input[type='checkbox']:checked"
.
В настоящее время "вы выбираете элементы ввода, которые имеют name='name1'
который не будет соответствовать ни одному из ваших флажков, потому что ни один из них не имеет атрибутов имени со значением "name1"
.
Итак, рассмотрим следующее изменение:
$('input').change(function() {
console.log('cheeck box change');
if ($("input[type='checkbox']:checked").length) { // <-- update this line
$('#sub').removeAttr('disabled');
} else {
$('#sub').attr('disabled', 'disabled');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input type='checkbox' class='check'> Value</p>
<p><input type='checkbox' class='check'> Value</p>
<p><input type='checkbox' class='check'> Value</p>
<p><input type='checkbox' class='check'> Value</p>
<p><input type='checkbox' class='check'> Value</p>
<input id='sub' type='button' value='Submit' disabled='disabled'>
Если вам нужно, чтобы ваша форма работала таким образом, и вы хотите выбирать элементы с помощью селектора имен, вы можете сделать что-то вроде этого:
$('input').change(function() {
console.log('cheeck box change');
if ($("input[name]:checked").length) { // <-- update this line
$('#sub').removeAttr('disabled');
} else {
$('#sub').attr('disabled', 'disabled');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><input type='checkbox' name='name-1' class='check'> Value</p>
<p><input type='checkbox' name='name-2' class='check'> Value</p>
<p><input type='checkbox' name='name-3' class='check'> Value</p>
<p><input type='checkbox' name='name-4' class='check'> Value</p>
<p><input type='checkbox' name='name-5' class='check'> Value</p>
<input id='sub' type='button' value='Submit' disabled='disabled'>