javascript - текст - Проверьте, установлен ли флажок с помощью jQuery




jquery добавить текст в div (14)

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

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

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

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

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

Возможны все нижеперечисленные методы

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 

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

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};

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

if($("#checkboxId").is(':checked')){
     // Code in the case checkbox is checked.
} else {
     // Code in the case checkbox is NOT checked.
}

Вы можете попробовать следующее:

<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" />

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

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

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

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

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


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

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

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

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

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

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

На самом деле, согласно jsperf.com , операции DOM jsperf.com , затем $ (). Prop (), за которыми следует $ (). jsperf.com () !!

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

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() , его также можно использовать для установки значения.


Полезны все следующие методы:

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

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

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

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

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


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

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

Что-то вроде этого может помочь

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

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

document.getElementById("myCheck").checked

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

Просто как тот.


$('#' + id).is(":checked")

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

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

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

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

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

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

$boxes.length;

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

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





checkbox