Как сбросить все флажки в документе с помощью jQuery или чистого JS?
Как сбросить все флажки в документе с помощью jQuery или чистого JS?
Ответы:
Если вы имеете в виду, как убрать отмеченное состояние со всех флажков:
$('input:checkbox').removeAttr('checked');
Если вы хотите использовать функцию сброса формы, вам лучше использовать это:
$('input[type=checkbox]').prop('checked',true);
ИЛИ ЖЕ
$('input[type=checkbox]').prop('checked',false);
Похоже removeAttr()
нельзя сбросить с помощью form.reset()
.
Я использовал это раньше:
$('input[type=checkbox]').prop('checked', false);
кажется, что .attr и .removeAttr не работают в некоторых ситуациях.
изменить: обратите внимание, что в jQuery v1.6 и выше вы должны использовать .prop('checked', false)
вместо этого для большей кросс-браузерной совместимости - см. https://api.jquery.com/prop
Комментарий здесь: Как сбросить все флажки с помощью jQuery или чистого JS?
var clist = document.getElementsByTagName("input");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = false; }
$('input:checkbox').each(function() { this.checked = false; });
Чтобы сделать обратное, см .: Выбрать все флажки по идентификатору / классу
$(":checkbox:checked").each(function () {
this.click();
});
чтобы снять флажок, поверните свою логику, чтобы сделать противоположное
Вы можете выбрать, в каком блоке или части вашей страницы можно установить флажки, а в каких - нет. Я столкнулся со сценарием, когда у меня есть две формы на моей странице, одна из которых имеет предварительно заполненные значения (для обновления), а другая должна быть заполнена заново.
$('#newFormId input[type=checkbox]').attr('checked',false);
это сделает только флажки в форме с идентификатором newFormId как не отмеченный.
Как сказано в ответе Тату Улманен, использование следующего скрипта выполнит эту работу.
$('input:checkbox').removeAttr('checked');
Но, как сказано в комментарии Блакомена , после версии 1.6 jQuery.prop()
вместо этого лучше использовать
Обратите внимание, что в jQuery v1.6 и выше вы должны использовать вместо этого .prop ('checked', false) для большей кросс-браузерной совместимости.
$('input:checkbox').prop('checked', false);
Будьте осторожны при использовании, jQuery.each()
это может вызвать проблемы с производительностью. (также избегайте jQuery.find()
в этом случае. Используйте вместо этого каждый)
$('input[type=checkbox]').each(function()
{
$(this).prop('checked', false);
});
Я использовал что-то подобное
$(yourSelector).find('input:checkbox').removeAttr('checked');
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container check">
<button class="btn">click</button>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
</div>
<script>
$('.btn').click(function() {
$('input[type=checkbox]').each(function()
{
this.checked = false;
});
})
</script>
</body>
</html>