Как найти выбранный checkbox

Сборник приемов JQuery для работы с чекбоксом.

1

Проверить состояние checkbox

<input type="checkbox" id="checkbox"> checkbox

<script>
if ($('#checkbox').is(':checked')){
	alert('Включен');
} else {
	alert('Выключен');
}
</script>

HTML

2

Отметить и снять checkbox

// Отметить checkbox
$('#checkbox').prop('checked', true);

// Снять checkbox
$('#checkbox').prop('checked', false);

JS

Отметить/снять все на странице

// Отметить все
$('body input:checkbox').prop('checked', true);

// Снять все
$('body input:checkbox').prop('checked', false);

JS

Управление группой чекбоксов

<p id="controls">
	<input type="checkbox">checkbox 1
	<input type="checkbox">checkbox 2
	<input type="checkbox">checkbox 3
</p>

<input type="checkbox" id="checkbox"> Отметить/снять все

<script>
$('#checkbox').click(function(){
	if ($(this).is(':checked')){
		$('#controls input:checkbox').prop('checked', true);
	} else {
		$('#controls input:checkbox').prop('checked', false);
	}
});
</script>

HTML

3

Программный клик по checkbox

Имитация клика по чекбоксу с запуском повешенных на него событий.

$('#checkbox').trigger('click');

JS

4

Узнать количество отмеченных

var count = $(':checkbox:checked').length;

JS

5

Обход CheckBox’ов

Выбор всех отмеченных

$('input:checkbox:checked').each(function(){
	alert($(this).val());
});

JS

Получить из всех отмеченных массив значений атрибута value

var checked = [];
$('input:checkbox:checked').each(function() {
	checked.push($(this).val());
});

JS

Обход неотмеченных чекбоксов

$('input:checkbox:not(:checked)').each(function(){
	alert($(this).val());
});

JS

6

Показать или скрыть блок контента по клику на checkbox

<input type="checkbox" id="checkbox"> Показать блок с текстом

<div id="text" style="display: none;">Какой-то текст....</div>

<script>
$('#checkbox').click(function(){
	if ($(this).is(':checked')){
		$('#text').show(100);
	} else {
		$('#text').hide(100);
	}
});    
</script>

HTML

7

Разблокировать кнопку при клике на checkbox

<input type="checkbox" id="checkbox"> Правила мною прочитаны и приняты
<button id="btn" disabled="disabled">Продолжить регистрацию</button>

<script>
$('#checkbox').click(function(){
	if ($(this).is(':checked')){
		$('#btn').removeAttr('disabled');
	} else {
		$('#btn').attr('disabled', 'disabled'); 
	}
});
</script>

HTML

8

Сменить цвет текста при выборе чекбокса

<label><input type="checkbox"> checkbox 1</label>
<label><input type="checkbox"> checkbox 2</label>
<label><input type="checkbox"> checkbox 3</label>

<script>
// Добавление класса:
$('input:checkbox').click(function(){
	if ($(this).is(':checked')) {
		$(this).parent().addClass('green');
	} else {
		$(this).parent().removeClass('green');
	}
});

// Или атрибут style:
$('input:checkbox').click(function(){
	if ($(this).is(':checked')) {
		$(this).parent().css('color', 'green');
	} else {
		$(this).parent().css('color', '#000000');
	}
});
</script>

HTML

9

Только один отмеченный чекбокс

Radio button из chexbox, при выборе одного чекбокса все остальные снимаются.

<div id="group">
	<input type="checkbox">checkbox 1
	<input type="checkbox">checkbox 2
	<input type="checkbox">checkbox 3
</div>

<script>
$('#group input:checkbox').click(function(){
	if ($(this).is(':checked')) {
		 $('#group input:checkbox').not(this).prop('checked', false);
	}
});
</script>

HTML

10

Отправить форму по чекбоксу

<form action="" method="post" id="form">
	<label><input type="checkbox">checkbox 1</label>
	<label><input type="checkbox">checkbox 2</label>
	<label><input type="checkbox">checkbox 3</label>
</form>

<script>
$('#form input[type="checkbox"]').on('change', function(){
	  $('#form').submit();
   });
});
</script>

HTML

14.12.2016, обновлено 09.12.2021

Другие публикации

Работа с Textarea jQuery

Сборник jQuery приемов с textarea — получить содержимое, вставить значение, подсчет количества символов и строк и т.д.

Стилизация Checkbox

Несколько примеров как изменить внешний вид чекбоксов с помощью CSS, изображений и немного JS.

Отметить или снять все чекбоксы в таблице

Мини JQuery плагин позволяет отметить или снять одним кликом чекбоксы в таблицах и отметить чекбокс по клику на сроку…

Селект с чекбоксами

Селект с множественным выбором (select multiple) весьма не удобен, при выборе часто забываешь нажимать сtrl и все сбрасывается. В место него можно использовать чекбоксы в выпадающем списке.

Показать/скрыть пароль

Чтобы включить отображение пароля в поле password нужно заменить атрибут type=»password» на type=»text», сделать это можно на jQuery или чистом JS.

Работа с select с помощью JQuery

Сборник методов JQuery для работы с выпадающими списками select option с примерами.

HTML CSS JS

Checkbox Checked — Проверка Состояния Чекбокса ✔️

Дата размещения статьи 22/12/2019 👁48083

Checkbox Checked — Проверка Состояния Чекбокса ✔️

В данной статье мы разберём различные способы проверки состояния чекбоксов. Это необходимо для эффективной работы с элементами форм.

Содержание:

  1. метод .is();
  2. метод .prop();
    1. отметить/снять (checked);
    2. деактивация чекбокса (disabled);
  3. метод .trigger();
  4. селектор :checked;
  5. свойство .length;
  6. атрибут «disabled»;
  7. массив значений выбранных чекбоксов;
  8. свойство .checked — проверка checkbox на checked на чистом JavaScript.

1. Проверка checkbox на checked — метод .is()

Сначала научимся определять при клике состояние текущего checkbox (checked / unchecked).

HTML:

<input type="checkbox" class="checkbox">

Мы будем использовать jQuery.

$(".checkbox").on("click", function () {
    if ($(this).is(":checked")) {
        // checkbox checked
    } else {
        // checkbox unchecked
    }
})

Нажми меня

Чекбокс не выбран

Т.о. при клике на чекбокс, мы отлавливаем событие click у текущего checkbox $(this) и с помощью метода .is() мы проверяем наличие псевдокласса :checked.

2. Проверка checkbox/radio на состояние (выбран/не выбран) — метод .prop()

Воспользуемся методом .prop() для проверки состояния checkbox или radio input.

$(".checkbox").on("click", function () {
    let checkboxStatus = $(this).prop("checked");

    console.log(checkboxStatus);
})

Данный код возвращает true или false при нажатии на чекбокс или радио input.

Нажми меня

Состояние чекбокса: _

Чтобы сразу выполнять необходимые действия, добавим оператор if:

$(".checkbox").on("click", function () {
    if ($(this).prop("checked") === true) {
        // ваш код
    }
})

2.1 Отметить / снять checked

Также при помощи метода .prop() можно отметить (или снять состояние checked).

// добавим checked
$(".checkbox").prop("checked", true)

// удалим состояние checked
$(".checkbox").prop("checked", false)

// добавим состояние checked для всех чекбоксов
$("input:checkbox").prop("checked", true);

// удалим checked для всех чекбоксов
$("input:checkbox").prop("checked", false);

2.2 Деактивация чекбокса

Чтобы деактивировать/активировать чекбокс, воспользуйтесь следующим кодом:

// отключаем чекбокс
$(".checkbox").prop("disabled", true)

// включаем чекбокс
$(".checkbox").prop("disabled", false)

3. Имитация клика по чекбоксу

Чтобы имитировать клик по чекбоксу, воспользуйтесь следующим кодом:

$(".checkbox").trigger("click");

4. Найти все выбранные checkbox / radio — селектор :checked

При помощи селектора :checked найдём все выбранные checkbox / radio.

Пример с radio input.

<label>
    <input type="radio" value="HTML" name="radio input">
    HTML
</label>
<label>
    <input type="radio" value="CSS" name="radio input">
    CSS
</label>
<label>
    <input type="radio" value="JavaScript" name="radio input">
    JavaScript
</label>

<div id="output_field"></div>
$("input").on("click", function () {
    $("#output_field").text("Вы выбрали " + $("input:checked").val());
});

Вы выбрали _

Теперь рассмотрим пример с input type=»checkbox», это также отлично работает и с radio input.

$("input").on("click", function () {
    $(container).html("");

    $("input:checked").each(function () {
        $(container).append($(this).val() + " ");
    });
});

Нативный JavaScript:

const inputs = document.querySelectorAll("input");
const container = document.querySelector(".container");

inputs.forEach(el => {
    el.addEventListener("click", () => {
        container.textContent = "";
        let input_checks = document.querySelectorAll("input:checked");

        input_checks.forEach(el_checked => {
            container.insertAdjacentHTML("beforeend", el_checked.value);
        });
    });
});

Вы выбрали _

5. Подсчёт количества выбранных чекбоксов

<input type="checkbox" value="1" name="name" class="count-checked">
<input type="checkbox" value="2" name="name" class="count-checked">
<input type="checkbox" value="3" name="name" class="count-checked">
<input type="checkbox" value="4" name="name" class="count-checked">

<div id="output_field"></div>

Чтобы узнать количество выбранных checkbox, будем использовать свойство .length:

const myCount = function () {
    $("#output_field").html($(".count-checked:checked").length + " чекбоксов выбрано вами.");
};
myCount();

$("input").on("click", myCount);

Вы выбрали _ checkbox

6. Запрет отправки формы без выбора чекбокса

Создадим форму, отправить данные которой пользователь сможет только после выбора checkbox.

Структура.

<form>
    <input type="text">
    <input type="email">
    <input type="checkbox" id="checked">
    <button class="form__submit" type="submit" disabled>Нажать</button>
</form>

Работа с JavaScript. Проверка checkbox на checked:

$("#checked").on("change", function () {
    if ($("#checked").prop("checked")) {
        $(".form__submit").attr("disabled", false);
    } else {
        $(".form__submit").attr("disabled", true);
    }
});

Как вы помните из 2 примера, .prop(«checked») возвращает true или false — то что нам и нужно.

Нативный JavaScript:

const checkbox = document.getElementById("checked");
const btn_submit = document.querySelector(".form__submit");

checkbox.addEventListener("change", () => {
    if (checkbox.checked) {
        btn_submit.removeAttribute("disabled");
    } else {
        btn_submit.setAttribute("disabled", true);
    }
});

Результат:

7. Массив значений выбранных чекбоксов

HTML:

<input type="checkbox" name="technology" value="PHP" class="array-checked">
<input type="checkbox" name="technology" value="JS" class="array-checked">
<input type="checkbox" name="technology" value="CSS" class="array-checked">

Получим массив значений из выбранных чекбоксов.

$(".array-checked").on("change", function () {
    const arrayChecked = [];

    $(".array-checked:checked").each(function () {
        arrayChecked.push($(this).val());
    });

    console.log(arrayChecked);
});

Возможно вам так же будет интересна статья про стилизацию чекбоксов.

8. Проверка checkbox на checked на чистом JavaScript

Используя чистый JavaScript определим состоние чекбокса.

HTML:

<input type="checkbox" class="checkbox">

JavaScript:

const checkbox = document.querySelector(".checkbox");

checkbox.addEventListener("change", function () {
    if (this.checked) {
        console.log("checked");
    } else {
        console.log("unchecked");
    }
})
Дата обновления статьи 08/01/2022 01:37

Git SSH Windows — пошаговое руководство События Формы

Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки,
то можете следить за выходом новых статей в Telegram.

  • JavaScript: Работа с Массивами
  • Наличие Динамически Добавленного Элемента
  • Стилизация Input File
  • Предзагрузка Картинок — Предварительная Загрузка Изображений на JavaScript
  • Стилизация Скролла
  • События Формы

So I’ve got code that looks like this:

<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">

I just need Javascript to get the value of whatever checkbox is currently checked.

EDIT: To add, there will only be ONE checked box.

Richard Barker's user avatar

asked Jul 22, 2012 at 10:54

Matthew 'mandatory' Bryant's user avatar

4

None of the above worked for me but simply use this:

document.querySelector('.messageCheckbox').checked;

Nimantha's user avatar

Nimantha

6,5706 gold badges27 silver badges67 bronze badges

answered Mar 27, 2015 at 13:19

JanBorup's user avatar

6

For modern browsers:

var checkedValue = document.querySelector('.messageCheckbox:checked').value;

By using jQuery:

var checkedValue = $('.messageCheckbox:checked').val();

Pure javascript without jQuery:

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValue = inputElements[i].value;
           break;
      }
}

answered Jul 22, 2012 at 11:06

Engineer's user avatar

EngineerEngineer

47.6k12 gold badges88 silver badges91 bronze badges

13

I am using this in my code.Try this

var x=$("#checkbox").is(":checked");

If the checkbox is checked x will be true otherwise it will be false.

answered Sep 2, 2013 at 13:01

user1683014's user avatar

user1683014user1683014

1,6811 gold badge11 silver badges6 bronze badges

4

in plain javascript:

function test() {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        alert(i + (cboxes[i].checked?' checked ':' unchecked ') + cboxes[i].value);
    }
}
function selectOnlyOne(current_clicked) {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        cboxes[i].checked = (cboxes[i] == current);
    }
}

answered Jul 22, 2012 at 11:02

Stano's user avatar

StanoStano

8,7016 gold badges30 silver badges44 bronze badges

This does not directly answer the question, but may help future visitors.


If you want to have a variable always be the current state of the checkbox (rather than having to keep checking its state), you can modify the onchange event to set that variable.

This can be done in the HTML:

<input class='messageCheckbox' type='checkbox' onchange='some_var=this.checked;'>

or with JavaScript:

cb = document.getElementsByClassName('messageCheckbox')[0]
cb.addEventListener('change', function(){some_var = this.checked})

answered Apr 8, 2018 at 8:52

Joe Iddon's user avatar

Joe IddonJoe Iddon

19.9k7 gold badges33 silver badges52 bronze badges

1

$(document).ready(function() {
  var ckbox = $("input[name='ips']");
  var chkId = '';
  $('input').on('click', function() {
    
    if (ckbox.is(':checked')) {
      $("input[name='ips']:checked").each ( function() {
   			chkId = $(this).val() + ",";
        chkId = chkId.slice(0, -1);
 	  });
       
       alert ( $(this).val() ); // return all values of checkboxes checked
       alert(chkId); // return value of checkbox checked
    }     
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" name="ips" value="12520">
<input type="checkbox" name="ips" value="12521">
<input type="checkbox" name="ips" value="12522">

answered Aug 10, 2016 at 15:16

Marinha do Nascimento's user avatar

Use this:

alert($(".messageCheckbox").is(":checked").val())

This assumes the checkboxes to check have the class «messageCheckbox», otherwise you would have to do a check if the input is the checkbox type, etc.

answered Jul 22, 2012 at 10:57

jackJoe's user avatar

jackJoejackJoe

11k8 gold badges49 silver badges64 bronze badges

<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="3" name="mailId[]">

<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="1" name="mailId[]">
function getValue(value){
    alert(value);
}

Zoe stands with Ukraine's user avatar

answered Feb 17, 2019 at 19:45

Alien's user avatar

AlienAlien

1211 gold badge1 silver badge11 bronze badges

None of the above worked for me without throwing errors in the console when the box wasn’t checked so I did something along these lines instead (onclick and the checkbox function are only being used for demo purposes, in my use case it’s part of a much bigger form submission function):

function checkbox() {
  var checked = false;
  if (document.querySelector('#opt1:checked')) {
     checked = true;
  }
  document.getElementById('msg').innerText = checked;
}
<input type="checkbox" onclick="checkbox()" id="opt1"> <span id="msg">Click The Box</span>

answered Jan 7, 2020 at 7:47

spice's user avatar

spicespice

1,43218 silver badges35 bronze badges

if you using after an event occurred you can use

const selected = event.target.checked; //true or false

An example would be if you want to track selected items, here is an example using react react-hook-form react material ui, it would be better than using value from rendered field that give wrong values

...
const [selectedQuestions, setSelectedQuestions] = useState(0);

const handleSelectedQuestions = (checked) => {
  if (checked) {
    setSelectedQuestions((prev) => prev + 1);
  } else {
    setSelectedQuestions((prev) => prev - 1);
  }
};

<Controller
  key={item.id}
  control={control}
  name={`question-${item.id}`}
  defaultValue={false}
  render={({ field: { onChange } }) => (
    <Grid key={item.id} item xs={12}>
      <QuestionCard
        item={item}
        handleOpen={handleOpen}
        isLoading={isLoading}
        isError={isError}
        onChange={(event) => {
          handleSelectedQuestions(event.target.checked);
          onChange(event);
        }}
      />
    </Grid>
  )}
/>
...
export default function QuestionsCard({ item, handleOpen, onChange }) {
  return (    
    ...
    <FormControlLabel
      control={
        <Checkbox
          // checked={value}
          onChange={onChange}
          sx={{
            '& svg': {
              fontSize: '1.266rem',
            },
          }}
        />
      }
    />
  )
}

answered Mar 3 at 21:11

DINA TAKLIT's user avatar

DINA TAKLITDINA TAKLIT

6,7359 gold badges69 silver badges73 bronze badges

1

If you’re using Semantic UI React, data is passed as the second parameter to the onChange event.

You can therefore access the checked property as follows:

<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />

answered Apr 19, 2018 at 14:11

Dave Clark's user avatar

Dave ClarkDave Clark

2,23315 silver badges32 bronze badges

If you want to get the values of all checkboxes using jQuery, this might help you. This will parse the list and depending on the desired result, you can execute other code. BTW, for this purpose, one does not need to name the input with brackets []. I left them off.

  $(document).on("change", ".messageCheckbox", function(evnt){
    var data = $(".messageCheckbox");
    data.each(function(){
      console.log(this.defaultValue, this.checked);
      // Do something... 
    });
  }); /* END LISTENER messageCheckbox */

Dharman's user avatar

Dharman

30.3k22 gold badges84 silver badges132 bronze badges

answered Dec 8, 2020 at 22:35

DanimalReks's user avatar

DanimalReksDanimalReks

1952 silver badges12 bronze badges

pure javascript and modern browsers

// for boolean
document.querySelector(`#isDebugMode`).checked

// checked means specific values
document.querySelector(`#size:checked`)?.value ?? defaultSize

Example

<form>
  <input type="checkbox" id="isDebugMode"><br>
  <input type="checkbox" value="3" id="size"><br>
  <input type="submit">
</form>

<script>
  document.querySelector(`form`).onsubmit = () => {
    const isDebugMode = document.querySelector(`#isDebugMode`).checked
    const defaultSize = "10"
    const size = document.querySelector(`#size:checked`)?.value ?? defaultSize
    // 👇 for defaultSize is undefined or null
    // const size = document.querySelector(`#size:checked`)?.value
    console.log({isDebugMode, size})
    return false
  }
</script>
  • Optional_chaining (?.)

answered Nov 10, 2021 at 3:58

Carson's user avatar

CarsonCarson

5,6822 gold badges35 silver badges44 bronze badges

Surprised to see no working vanilla JavaScript solutions here (the top voted answer does not work when you follow best practices and use different IDs for each HTML element). However, this did the job for me:

Array.prototype.slice.call(document.querySelectorAll("[name='mailId']:checked"),0).map(function(v,i,a) { 
      return v.value; 
  });

answered Dec 15, 2022 at 3:16

bomberjackets's user avatar

You could use following ways via jQuery or JavaScript to check whether checkbox is clicked.

$('.messageCheckbox').is(":checked"); // jQuery
document.getElementById(".messageCheckbox").checked //JavaScript

To obtain the value checked in jQuery:

$(".messageCheckbox").is(":checked").val();

answered Dec 16, 2022 at 7:49

Du-Lacoste's user avatar

Du-LacosteDu-Lacoste

11.3k2 gold badges67 silver badges50 bronze badges

0

In my project, I usually use this snippets:

var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
                type[i] = $(this).val();
            });

And it works well.

Dharman's user avatar

Dharman

30.3k22 gold badges84 silver badges132 bronze badges

answered Aug 3, 2016 at 2:18

VanThaoNguyen's user avatar

1

В этом посте мы обсудим, как получить значения отмеченных флажков в JavaScript и jQuery.

В чистом JavaScript вы можете использовать checked свойство, чтобы получить проверенное состояние флажка. Следующий код демонстрирует это с помощью getElementsByName() метод.

JS

document.getElementById(‘select’).onclick = function() {

    var checkboxes = document.getElementsByName(‘vehicle’);

    for (var checkbox of checkboxes)

    {

        if (checkbox.checked) {

            document.body.append(checkbox.value + ‘ ‘);

        }

    }

}

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<!doctype html>

<html>

    <body>

    <p>Choose your vehicle:</p>

    <div>

    <input type=«checkbox» id=«bike» name=«vehicle» value=«bike» проверил>

    <label for=«bike»>Bike</label>

    </div>

    <div>

    <input type=«checkbox» id=«scooter» name=«vehicle» value=«scooter» проверил>

    <label for=«scooter»>Scooter</label>

    </div>

    <div>

    <input type=«checkbox» id=«car» name=«vehicle» value=«car»>

    <label for=«car»>Car</label>

    </div>

    <div>

    <input type=«checkbox» id=«auto» name=«vehicle» value=«auto»>

    <label for=«auto»>Auto</label>

    </div>

    <div>

    <button id=«select»>Get Checked Checkboxes</button>

    </div>

    <br>

    </body>

</html>

Изменить в JSFiddle

 
В качестве альтернативы вы можете использовать querySelectorAll() метод с :checked селектор.

JS

document.getElementById(‘select’).onclick = function() {

    var checkboxes = document.querySelectorAll(‘input[type=»checkbox»]:checked’);

    for (var checkbox of checkboxes) {

        document.body.append(checkbox.value + ‘ ‘);

    }

}

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<!doctype html>

<html>

    <body>

    <p>Choose your vehicle:</p>

    <div>

    <input type=«checkbox» id=«bike» name=«vehicle» value=«bike» проверил>

    <label for=«bike»>Bike</label>

    </div>

    <div>

    <input type=«checkbox» id=«scooter» name=«vehicle» value=«scooter» проверил>

    <label for=«scooter»>Scooter</label>

    </div>

    <div>

    <input type=«checkbox» id=«car» name=«vehicle» value=«car»>

    <label for=«car»>Car</label>

    </div>

    <div>

    <input type=«checkbox» id=«auto» name=«vehicle» value=«auto»>

    <label for=«auto»>Auto</label>

    </div>

    <div>

    <button id=«select»>Get Checked Checkboxes</button>

    </div>

    <br>

    </body>

</html>

Изменить в JSFiddle

 
Приведенный выше код вернет все отмеченные флажки в документе. Чтобы выбрать единственную группу флажков с определенным именем, вы можете сделать следующее:

JS

document.getElementById(‘select’).onclick = function() {

    var checkboxes = document.querySelectorAll(‘input[name=»vehicle»]:checked’);

    for (var checkbox of checkboxes) {

        document.body.append(checkbox.value + ‘ ‘);

    }

}

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<!doctype html>

<html>

    <body>

    <p>Choose your vehicle:</p>

    <div>

    <input type=«checkbox» id=«bike» name=«vehicle» value=«bike» проверил>

    <label for=«bike»>Bike</label>

    </div>

    <div>

    <input type=«checkbox» id=«scooter» name=«vehicle» value=«scooter» проверил>

    <label for=«scooter»>Scooter</label>

    </div>

    <div>

    <input type=«checkbox» id=«car» name=«vehicle» value=«car»>

    <label for=«car»>Car</label>

    </div>

    <div>

    <input type=«checkbox» id=«auto» name=«vehicle» value=«auto»>

    <label for=«auto»>Auto</label>

    </div>

    <div>

    <button id=«select»>Get Checked Checkboxes</button>

    </div>

    <br>

    </body>

</html>

Изменить в JSFiddle

2. Использование jQuery

С jQuery вы можете использовать селектор атрибутов, например:

JS

$(document).ready(function() {

    $(‘#select’).click(function() {

        $(‘input[type=»checkbox»]:checked’).each(function() {    // $(‘:checkbox:checked’)

            document.body.append(this.value + ‘ ‘);                // $(this).val()

        });

    });

});

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<!doctype html>

<html>

    <body>

    <p>Choose your vehicle:</p>

    <div>

    <input type=«checkbox» id=«bike» name=«vehicle» value=«bike» проверил>

    <label for=«bike»>Bike</label>

    </div>

    <div>

    <input type=«checkbox» id=«scooter» name=«vehicle» value=«scooter» проверил>

    <label for=«scooter»>Scooter</label>

    </div>

    <div>

    <input type=«checkbox» id=«car» name=«vehicle» value=«car»>

    <label for=«car»>Car</label>

    </div>

    <div>

    <input type=«checkbox» id=«auto» name=«vehicle» value=«auto»>

    <label for=«auto»>Auto</label>

    </div>

    <div>

    <button id=«select»>Get Checked Checkboxes</button>

    </div>

    <br>

    </body>

</html>

Изменить в JSFiddle

 
Чтобы объединить значения отмеченных флажков в виде одной строки, разделенной разделителем, вы можете сделать следующее:

JS

$(document).ready(function() {

    $(‘#select’).click(function() {

        var values = $(‘input[type=»checkbox»]:checked’).map(function() {

            return $(this).val();

        }).get().join(‘,’);

        document.body.append(values);

    })

});

HTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<!doctype html>

<html>

    <body>

    <p>Choose your vehicle:</p>

    <div>

    <input type=«checkbox» id=«bike» name=«vehicle» value=«bike» проверил>

    <label for=«bike»>Bike</label>

    </div>

    <div>

    <input type=«checkbox» id=«scooter» name=«vehicle» value=«scooter» проверил>

    <label for=«scooter»>Scooter</label>

    </div>

    <div>

    <input type=«checkbox» id=«car» name=«vehicle» value=«car»>

    <label for=«car»>Car</label>

    </div>

    <div>

    <input type=«checkbox» id=«auto» name=«vehicle» value=«auto»>

    <label for=«auto»>Auto</label>

    </div>

    <div>

    <button id=«select»>Get Checked Checkboxes</button>

    </div>

    <br>

    </body>

</html>

Изменить в JSFiddle

Это все, что касается получения значений отмеченных флажков в JavaScript и jQuery.

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования :)

Часто при работе с формами в HTML приходится взаимодействовать с чекбоксами, которые активируют те или иные сценарии обработки этих форм. Наиболее распространенный пример — чекбокс «Я согласен с правилами …», который нужно отметить, чтобы кнопка отправки формы стала активной.

Другой пример — условный вывод некоторых элементов формы если выбраны какие-либо определенные опции.

conditional_input.gif

Подобные задачи с легкостью решаются при помощи jQuery и нескольких строчек кода.

Как проверить чекбокс при помощи jQuery (jquery checkbox checked)

Проверить выбран ли чекбокс можно несколькими способами.

Первый и самый очевидный — проверка атрибута checked у чекбокса. Это можно сделать либо на чистом js, обратившись свойству checked

if(this.checked){ ... }

либо при помощи jQuery метода prop(), который возвращает значение атрибута, переданного в качестве аргумента. У атрибута checked может быть только два значения: true или false. Поэтому если $('input').prop('checked') возвращает true — считаем, что чекбокс выбран.

<script>
  jQuery(document).ready(function($){
    
    $('input[type="checkbox"]').on('change', function(){
      
      // Это короткая запись, которая означает то же, что и if($(this).prop('checked') == true)
      if($(this).prop('checked'))
        alert('Чекбокс выбран');
    });
    
  });
</script>

<input type="checkbox" name="checkbox" />

Другой способ — проверка так называемого псевдокласса :checked, который добавляется отмеченным чекбоксам. Проверить наличие псевдокласса можно при помощи jQuery метода is()

<script>
  jQuery(document).ready(function($){
    $('input[name="trigger"]').on('change', function($){
      
      if($(this).is(':checked'))
        $('input[name="target"]').show();
      
      else
        $('input[name="target"]').hide();
    });
  });
</script>


<form>
  <input type="checkbox" name="trigger" />
  <input type="text" name="target" style="display:none" />
</form>

Псевдоклассы в CSS и jQuery — очень интересная и полезная вещь, которая заслуживает отдельной статьи. Обязательно расскажу о них поподробнее в ближайшем будущем.

Как выбрать чекбокс (checkbox check)

Предположим вам нужно отметить все чекбоксы если отмечен чекбокс «Выбрать все»

Данный функционал можно с легкостью реализовать при помощи описанного выше метода jQuery prop() с параметром checked

$('input').prop('checked', true);     // Чекбокс выбран
$('input').prop('checked', false);    // Чекбокс не выбран

Однако теперь мы передаем ему второй параметр — значение атрибута checked для чекбокса, в зависимости от того, отмечен ли чекбокс «Выбрать все».

<script>
  jQuery(document).ready(function($){
    $('input[name="select-all"]').on('change', function(){
      if($(this).is(':checked')){
        $('.checkboxes').find('input[type="checkbox"]')
          .prop('checked', true); // Устанавливаем значение свойства checked
      } else {
        $('.checkboxes').find('input[type="checkbox"]')
          .prop('checked', false);
    });
  });
</script>

<input type="checkbox" name="select-all" />

<div class="checkboxes">
  <input type="checkbox" name="checkboxes[]" value="1"/>
  <input type="checkbox" name="checkboxes[]" value="2"/>
  
  <input type="checkbox" name="checkboxes[]" value="n"/>
</div>

Как получить значение чекбокса (checkbox value) 

Чтобы получить значение чекбокса, как и другого любого элемента форм (:input), можно воспользоваться jQuery функцией val().  

var chekbox_value = $('input[name="checkbox"]').val();

При этом не важно, отмечен чекбокс или нет. Если же нужно, например, получить значения только выбранных чекбоксов, их можно отфильтровать при помощи псевдокласса :checked

Манипулировать чекбоксами при помощи jQuery на самом деле очень просто. Надеюсь, вы смогли в этом убедиться. Ну а если остались какие-то вопросы, буду рад на них ответить в комментариях.

Понравилась статья? Поделить с друзьями:
  • Как найти задолженность по кредиту по фамилии
  • Как найти работу сиделки в германии
  • Как найти крутизну транзистора
  • Usb не опознано как это исправить
  • Как найти качалку в майнкрафт