Проверьте, установлен ли флажок с помощью 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 ]

17 голосов
/ 28 июня 2018

Я знаю, что ОП хочет jquery, но в моем случае чистый JS был ответом, поэтому, если кто-то, как я, здесь и не имеет jquery или не хочет его использовать - вот ответ JS:

document.getElementById("myCheck").checked

Возвращает true, если проверен ввод с идентификатором myCheck, и false, если не проверено.

Просто так.

10 голосов
/ 08 октября 2014

Вы можете сделать это просто как;

Рабочая скрипка

HTML

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

JQuery

$(document).ready(function () {
    var ckbox = $('#checkbox');

    $('input').on('click',function () {
        if (ckbox.is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});

или даже проще;

$("#checkbox").attr("checked") ? alert("Checked") : alert("Unchecked");

Если отмечен checkbox, он вернет true, в противном случае undefined

7 голосов
/ 12 ноября 2013

Простая демонстрация для проверки и установки флажка.

jsfiddle !

$('.attr-value-name').click(function() {
    if($(this).parent().find('input[type="checkbox"]').is(':checked'))
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', false);
    }
    else
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', true);
    }
});
6 голосов
/ 17 июня 2016

Просто чтобы сказать, что в моем примере ситуация была диалоговым окном, которое затем проверяло флажок перед закрытием диалога. Ничего из вышеперечисленного и Как проверить, установлен ли флажок в jQuery? и jQuery, если флажок установлен тоже не работает.

В конце концов

<input class="cb" id="rd" type="checkbox">
<input class="cb" id="fd" type="checkbox">

var fd=$('.cb#fd').is(':checked');
var rd= $('.cb#rd').is(':checked');

Это сработало, вызывая класс, а затем идентификатор. а не только удостоверение личности. Это может быть связано с тем, что проблема связана с вложенными элементами DOM на этой странице. Обходной путь был выше.

5 голосов
/ 05 июня 2014

Для флажка с идентификатором

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

вы можете просто сделать

$("#id_input_checkbox13").prop('checked')

, в качестве возвращаемого значения для вышеприведенного синтаксиса вы получите true или false.Вы можете использовать его в предложении if как обычное логическое выражение.

5 голосов
/ 30 июля 2013

Как-то так может помочь

togglecheckBoxs =  function( objCheckBox ) {

    var boolAllChecked = true;

    if( false == objCheckBox.checked ) {
        $('#checkAll').prop( 'checked',false );
    } else {
        $( 'input[id^="someIds_"]' ).each( function( chkboxIndex, chkbox ) {
            if( false == chkbox.checked ) {
                $('#checkAll').prop( 'checked',false );
                boolAllChecked = false;
            }
        });

        if( true == boolAllChecked ) {
            $('#checkAll').prop( 'checked',true );
        }
    }
}
4 голосов
/ 08 июля 2014

Переключатель отмечен

$("#checkall").click(function(){
    $("input:checkbox").prop( 'checked',$(this).is(":checked") );
})
4 голосов
/ 10 августа 2014

На самом деле, согласно jsperf.com , DOM-операции выполняются быстрее, чем $ (). Prop (), а затем $ (). Is () !!

Вот синтаксисы:

var checkbox = $('#'+id);
/* OR var checkbox = $("input[name=checkbox1]"); whichever is best */

/* The DOM way - The fastest */
if(checkbox[0].checked == true)
   alert('Checkbox is checked!!');

/* Using jQuery .prop() - The second fastest */
if(checkbox.prop('checked') == true)
   alert('Checkbox is checked!!');

/* Using jQuery .is() - The slowest in the lot */
if(checkbox.is(':checked') == true)
   alert('Checkbox is checked!!');

Я лично предпочитаю .prop(). В отличие от .is(), он также может быть использован для установки значения.

0 голосов
/ 14 февраля 2015

используйте код ниже

<script>

$(document).ready(function () {
  $("[id$='chkSendMail']").attr("onchange", "ShowMailSection()");
}

function ShowMailSection() {
  if ($("[id$='chkSendMail'][type='checkbox']:checked").length >0){
      $("[id$='SecEmail']").removeClass("Hide");
  }
</script>
0 голосов
/ 05 июня 2019

С середины 2019 года jQuery иногда отходит на задний план к таким вещам, как VueJS, React и т. Д. Вот простой ванильный вариант прослушивателя загрузки Javascript:

<script>
  // Replace 'admincheckbox' both variable and ID with whatever suits.

  window.onload = function() {
    const admincheckbox = document.getElementById("admincheckbox");
    admincheckbox.addEventListener('click', function() {
      if(admincheckbox.checked){
        alert('Checked');
      } else {
        alert('Unchecked');
      }
    });
  }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...