Проверьте, установлен ли флажок с помощью jQuery - PullRequest
1066 голосов
/ 05 февраля 2010

Как проверить, установлен ли флажок в массиве флажков с использованием идентификатора массива флажков?

Я использую следующий код, но он всегда возвращает количество отмеченных флажков независимо от идентификатора.

function isCheckedById(id) {
  alert(id);
  var checked = $("input[@id=" + id + "]:checked").length;
  alert(checked);

  if (checked == 0) {
    return false;
  } else {
    return true;
  }
}

Ответы [ 21 ]

1879 голосов
/ 05 февраля 2010
$('#' + id).is(":checked")

Это происходит, если флажок установлен.

Для массива флажков с тем же именем вы можете получить список проверенных по:

var $boxes = $('input[name=thename]:checked');

Затем, чтобы просмотреть их и посмотреть, что проверено, вы можете сделать:

$boxes.each(function(){
    // Do stuff here with this
});

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

$boxes.length;
630 голосов
/ 05 февраля 2010

идентификаторы должны быть уникальными в вашем документе, это означает, что вы не должны делать это:

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />

Вместо этого удалите идентификатор, а затем выберите его по имени или по содержащему элементу:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

А теперь jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
274 голосов
/ 31 мая 2012
$('#checkbox').is(':checked'); 

Приведенный выше код возвращает значение true, если флажок установлен, или значение false, если нет.

105 голосов
/ 13 июля 2016

Все следующие методы полезны:

$('#checkbox').is(":checked")

$('#checkbox').prop('checked')

$('#checkbox')[0].checked

$('#checkbox').get(0).checked

Рекомендуется избегать DOMelement или встроенного "this.checked", вместо этого следует использовать jQuery on для метода прослушивания событий.

87 голосов
/ 04 октября 2016

Код jQuery, чтобы проверить, установлен ли флажок или нет:

if($('input[name="checkBoxName"]').is(':checked'))
{
  // checked
}else
{
 // unchecked
}

В качестве альтернативы:

if($('input[name="checkBoxName"]:checked'))
{
    // checked
}else{
  // unchecked
}
61 голосов
/ 09 июля 2013

Самая важная концепция, которую нужно помнить о проверенном атрибуте: что оно не соответствует проверенному свойству. Атрибут фактически соответствует свойству defaultChecked и должно использоваться только для установки начального значения флажка. Проверенный атрибут значение не изменяется с состоянием флажка, в то время как проверенное свойство делает. Таким образом, кросс-браузер-совместимый способ определить, если флажок установлен, это использовать свойство

Возможны все нижеуказанные методы

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 
35 голосов
/ 07 октября 2015

Вы можете использовать этот код,

if($("#checkboxId").is(':checked')){
     // Code in the case checkbox is checked.
} else {
     // Code in the case checkbox is NOT checked.
}
27 голосов
/ 25 февраля 2014

В соответствии с документацией jQuery существуют следующие способы проверить, установлен флажок или нет. Давайте рассмотрим флажок для примера (Проверьте Работает jsfiddle со всеми примерами)

<input type="checkbox" name="mycheckbox" id="mycheckbox" />
<br><br>
<input type="button" id="test-with-checked" value="Test with checked" />
<input type="button" id="test-with-is" value="Test with is" />
<input type="button" id="test-with-prop" value="Test with prop" />

Пример 1 - С проверкой

$("#test-with-checked").on("click", function(){
    if(mycheckbox.checked) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Пример 2 - С jQuery есть, ПРИМЕЧАНИЕ -: проверено

var check;
$("#test-with-is").on("click", function(){
    check = $("#mycheckbox").is(":checked");
    if(check) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Пример 3 - С помощью jQuery prop

var check;
$("#test-with-prop").on("click", function(){
    check = $("#mycheckbox").prop("checked");
    if(check) {
         alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 

Проверка работоспособности jsfiddle

26 голосов
/ 11 июля 2012

Вы можете попробовать это:

<script>
function checkAllCheckBox(value)
{
   if($('#select_all_').is(':checked')){
   $(".check_").attr ( "checked" ,"checked" );
    }
    else
    {
        $(".check_").removeAttr('checked');
    }

 }

</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />


<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
21 голосов
/ 17 февраля 2015

Вы можете использовать любой из следующих рекомендуемых кодов jquery.

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...