javascript - variavel - Verifique se a caixa de seleção está marcada com jQuery




lista de eventos javascript (14)

Como posso verificar se uma caixa de seleção em uma caixa de seleção está marcada usando o id da matriz da caixa de seleção?

Estou usando o código a seguir, mas sempre retorna a contagem de caixas de seleção marcadas, independentemente do id.

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

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

O conceito mais importante a ser lembrado sobre o atributo verificado é que ele não corresponde à propriedade verificada. O atributo realmente corresponde à propriedade defaultChecked e deve ser usado apenas para definir o valor inicial da caixa de seleção. O valor do atributo verificado não muda com o estado da caixa de seleção, enquanto a propriedade marcada faz. Portanto, a maneira compatível com o navegador para determinar se uma caixa de seleção está marcada é usar a propriedade

Todos os métodos abaixo são possíveis

elem.checked 

$(elem).prop("checked") 

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

Algo assim pode ajudar

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

Apenas para dizer no meu exemplo, a situação era uma caixa de diálogo que, em seguida, verificava a caixa de seleção antes de fechar a caixa de diálogo. Nenhuma das opções acima e Como verificar se uma caixa de seleção está marcada no jQuery? e jQuery se a caixa de seleção estiver marcada também não parece funcionar.

No final

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

Isso funcionou, chamando a classe e depois o ID. em vez de apenas o ID. Pode ser devido aos elementos DOM aninhados nesta página, causando o problema. A solução alternativa foi acima.


Código jQuery para verificar se a caixa de seleção está marcada ou não:

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

Alternativamente:

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

Demonstração simples para verificar e definir uma caixa de seleção.

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

Eu sei que o OP quer jquery mas no meu caso, puro JS foi a resposta, então se alguém como eu está aqui e não tem jquery ou não quer usá-lo - aqui está a resposta JS:

document.getElementById("myCheck").checked

Retorna true se a entrada com ID myCheck estiver marcada e false se não estiver marcada.

Simples assim.


Os IDs devem ser exclusivos em seu documento, o que significa que você não deve fazer isso:

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

Em vez disso, elimine o ID e, em seguida, selecione-os por nome ou por um elemento que os contenha:

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

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

E agora o 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;

Para checkbox com um id

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

você pode simplesmente fazer

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

você será true ou false como valor de retorno para a sintaxe acima. Você pode usá-lo na cláusula if como expressão booleana normal.


Usando esse código, você pode marcar pelo menos uma caixa de seleção marcada ou não em diferentes grupos de caixas de seleção ou de várias caixas de seleção. Usando isso, você não pode exigir a remoção de IDs ou IDs dinâmicos. Este código funciona com os mesmos IDs.

Link Referência

<label class="control-label col-sm-4">Check Box 2</label>
    <input type="checkbox" name="checkbox2" id="checkbox21" value=ck1 /> ck1<br />
    <input type="checkbox" name="checkbox2" id="checkbox22" value=ck2 /> ck2<br />

<label class="control-label col-sm-4">Check Box 3</label>
    <input type="checkbox" name="checkbox3" id="checkbox31" value=ck3 /> ck3<br />
    <input type="checkbox" name="checkbox3" id="checkbox32" value=ck4 /> ck4<br />

<script>
function checkFormData() {
    if (!$('input[name=checkbox2]:checked').length > 0) {
        document.getElementById("errMessage").innerHTML = "Check Box 2 can not be null";
        return false;
    }
    if (!$('input[name=checkbox3]:checked').length > 0) {
        document.getElementById("errMessage").innerHTML = "Check Box 3 can not be null";
        return false;
    }
    alert("Success");
    return true;
}
</script>

Você pode fazer isso simplesmente como;

Violino de trabalho

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

ou ainda mais simples;

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

Se a checkbox estiver marcada, retornará true caso contrário, undefined


Você pode usar este código

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

Você pode usar qualquer um dos seguintes códigos recomendados pelo jquery.

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

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

Isso acontece se a caixa de seleção estiver marcada.

Para uma variedade de caixas de seleção com o mesmo nome, você pode obter a lista de caixas marcadas:

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

Em seguida, faça um loop entre eles e veja o que você pode fazer:

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

Para descobrir quantos são verificados, você pode fazer:

$boxes.length;

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

O código acima retorna true se a caixa de seleção estiver marcada ou falsa, se não estiver.





checkbox