Как сбросить все флажки с помощью jQuery или чистого JS?


Ответы:


147

Если вы имеете в виду, как убрать отмеченное состояние со всех флажков:

$('input:checkbox').removeAttr('checked');

Этот сценарий переключает состояние флажков. Не уверен, что я делаю что-то не так
Sundeep

39
Обратите внимание, что в jQuery v1.6 и выше вы должны использовать .prop ('checked', false) вместо этого для большей кросс-браузерной совместимости - см. Api.jquery.com/prop
Henry C

Я использовал это для сброса формы перед открытием нового диалога. После этого мне нужно поставить один флажок «установлен», и это не сработает. Когда я смотрю на сгенерированный код, он «отмечен», но на моей странице это не $ ('input: checkbox'). RemoveAttr ('checked'); $ ('input [значение =' + val + ']'). attr ('проверено', истина);
Гаянэ,

1
Теперь это устаревший ответ - см .: stackoverflow.com/questions/17420534/…
raison

47

Если вы хотите использовать функцию сброса формы, вам лучше использовать это:

$('input[type=checkbox]').prop('checked',true); 

ИЛИ ЖЕ

$('input[type=checkbox]').prop('checked',false);

Похоже removeAttr()нельзя сбросить с помощью form.reset().


1
Хотя принятый ответ тоже работает, я считаю, что это лучший способ сделать это. Пожалуйста, если вы читаете это, подумайте об использовании этого способа, так как это лучше всего.
rafaelmorais

13

Приведенный выше ответ не сработал для меня -

Следующие работали

$('input[type=checkbox]').each(function() 
{ 
        this.checked = false; 
}); 

Это гарантирует, что все флажки сняты.


13

Я использовал это раньше:

$('input[type=checkbox]').prop('checked', false);

кажется, что .attr и .removeAttr не работают в некоторых ситуациях.

изменить: обратите внимание, что в jQuery v1.6 и выше вы должны использовать .prop('checked', false)вместо этого для большей кросс-браузерной совместимости - см. https://api.jquery.com/prop

Комментарий здесь: Как сбросить все флажки с помощью jQuery или чистого JS?


11

В некоторых случаях флажок может быть установлен по умолчанию. Если вы хотите восстановить выбор по умолчанию, а не устанавливать его как невыделенный, сравните defaultCheckedсвойство.

$(':checkbox').each(function(i,item){ 
        this.checked = item.defaultChecked; 
}); 


4
 $(":checkbox:checked").each(function () {

 this.click(); 
});

чтобы снять флажок, поверните свою логику, чтобы сделать противоположное


3

Вы можете выбрать, в каком блоке или части вашей страницы можно установить флажки, а в каких - нет. Я столкнулся со сценарием, когда у меня есть две формы на моей странице, одна из которых имеет предварительно заполненные значения (для обновления), а другая должна быть заполнена заново.

$('#newFormId input[type=checkbox]').attr('checked',false);

это сделает только флажки в форме с идентификатором newFormId как не отмеченный.


2

Как сказано в ответе Тату Улманен, использование следующего скрипта выполнит эту работу.

$('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); 
});


1
<!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>

3
Ответы только на код не приветствуются. Вы действительно хотите включить некоторые объяснения.
GhostCat 05
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.