Як скинути всі прапорці за допомогою jQuery або чистого JS?


Відповіді:


145

Якщо ви маєте на увазі, як видалити стан "перевірено" з усіх прапорців:

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

Цей скрипт перемикає стан прапорців. Не впевнений, чи роблю я щось неправильно
Неділя,

38
Зверніть увагу, що в jQuery v1.6 та новіших версіях, замість цього вам слід використовувати .prop ('перевірено', false) для більшої сумісності між браузерами - див. Api.jquery.com/prop
Henry C

Я використав це для скидання форми перед відкриттям нового діалогового вікна. Після цього мені потрібно поставити один прапорець "перевірено", і це не працює. Коли я дивлюсь на згенерований код, його "перевіряють", але на моїй сторінці це не $ ("input: checkbox"). RemoveAttr ("перевірено"); $ ('input [value =' + val + ']'). attr ('перевірено', true);
Gayane

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; 
}); 

Це гарантує, що всі прапорці зняті.


12

Я використовував це раніше:

$('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

Ви можете обрати вибір, який div або частина вашої сторінки можуть мати прапорці, а які ні. Я натрапив на сценарій, коли на моїй сторінці є дві форми, а одна має попередньо заповнені значення (для оновлення), а інші потрібно заповнити свіжо.

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

це зробить лише прапорці у формі з ідентифікатором newFormId як не встановленим.


2

Як сказано у відповіді Тату Улманен, використання наступного сценарію зробить свою роботу

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

Але, як зазначав коментар Блакомена , після версії 1.6 краще використовувати jQuery.prop()замість цього

Зверніть увагу, що в jQuery v1.6 та новіших версіях, замість цього вам слід використовувати .prop ('перевірено', 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.