Como posso verificar se uma caixa de seleção em uma matriz de caixas de seleção está marcada usando o ID da matriz de caixas de seleção?
Estou usando o código a seguir, mas ele sempre retorna a contagem de caixas de seleção, independentemente da identificação.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
javascript
jquery
html
checkbox
Jake
fonte
fonte
id
s são únicos!name
pode (e deve, nesse caso) repetir, mas você encontrará muitas coisas estranhas acontecendo se duplicar o arquivoid
! = DRespostas:
Os IDs devem ser exclusivos no seu documento, o que significa que você não deve fazer isso:
Em vez disso, solte o ID e selecione-os por nome ou por um elemento que contenha:
E agora o jQuery:
fonte
$('#checkArray :checkbox:checked').length > 0;
quando o mais simples$('#checkArray').checked
funciona e está disponível em mais versões?var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Isso acontece se a caixa de seleção estiver marcada.
Para uma variedade de caixas de seleção com o mesmo nome, é possível obter a lista de caixas marcadas da seguinte forma:
Em seguida, para percorrê-los e ver o que está marcado, você pode fazer:
Para descobrir quantos estão marcados, você pode fazer:
fonte
$('#'+id).attr('checked')
, que é equivalente,$('#' + id).is(":checked")
mas mais fácil de lembrar, da IMO..attr('checked')
. Seu comportamento mudou no jQuery 1.6. Costumava retornarfalse
outrue
. Agora ele retornaundefined
ou"checked"
..is(':checked')
não tem esse problema.$('.ClassName').is(':checked')
parece que não funciona, mas$('#' + id).is(":checked")
funciona? além do fato de que uma pesquisa por id e outra por classname.O código acima retorna true se a caixa de seleção estiver marcada ou false se não estiver.
fonte
var isChecked = $('#CheckboxID').attr('checked') ? true : false;
mas nem sempre retornava o valor correto. Então obrigado!Todos os métodos a seguir são úteis:
É recomendável evitar DOMelement ou inline "this.checked". Em vez disso, jQuery no método deve ser usado como ouvinte de eventos.
fonte
Código jQuery para verificar se a caixa de seleção está marcada ou não:
Alternativamente:
fonte
:
... correto é:if(('input[name="checkBoxName"]').is(':checked'))
.if($('input[name="checkBoxName"]').is(':checked'))
.else
bloco, pois um objeto jQuery, mesmo que não contenha elementos correspondentes, é "verdadeiro". Adicione.length
ao final, então você está falando.Todos os métodos abaixo são possíveis
fonte
Você pode usar esse código,
fonte
De acordo com a documentação do jQuery , existem as seguintes maneiras de verificar se uma caixa de seleção está marcada ou não. Vamos considerar uma caixa de seleção, por exemplo (Marque Working jsfiddle com todos os exemplos)
Exemplo 1 - Com marcado
Exemplo 2 - Com jQuery, NOTE -: marcado
Exemplo 3 - Com suporte jQuery
Verificar Working jsfiddle
fonte
Você pode tentar isso:
fonte
attr
reflete apenas o valor do atributo em HTML, não o valor da propriedade no DOM. Veja a documentação paraattr
, onde diz "Para recuperar e alterar as propriedades do DOM, como ochecked
,selected
oudisabled
estado de elementos de formulário, use o.prop()
método.", E a documentaçãoprop
, onde diz "O.prop()
método deve ser usado para definirdisabled
echecked
, em vez do.attr()
método ".Você pode usar qualquer um dos seguintes códigos recomendados pelo jquery.
fonte
Eu sei que o OP quer jquery, mas no meu caso JS puro foi a resposta, portanto, se alguém como eu estiver aqui e não tiver jquery ou não quiser usá-lo - aqui está a resposta JS:
Retorna true se a entrada com o ID myCheck estiver marcada e false se não estiver marcada.
Simples assim.
fonte
$("#myCheck")[0].checked
funcionará em jquery! : DVocê pode fazer isso simplesmente como;
Violino de trabalho
HTML
jQuery
ou ainda mais simples;
Se a opção
checkbox
estiver marcada, retornarátrue
caso contrárioundefined
fonte
or even simpler;
->$("#checkbox").checked
Essa também é uma ideia que uso com frequência:
Se marcado, ele retornará 1; caso contrário, retornará 0.
fonte
Demonstração simples para marcar e definir uma caixa de seleção.
jsfiddle !
fonte
Apenas para dizer no meu exemplo, a situação era uma caixa de diálogo que depois 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 pareceu funcionar.
No final
Isso funcionou para chamar a classe e depois o ID. em vez de apenas o ID. Pode ser que os elementos DOM aninhados nesta página estejam causando o problema. A solução alternativa estava acima.
fonte
Para caixa de seleção com um ID
você pode simplesmente fazer
você receberá
true
oufalse
como valor de retorno a sintaxe acima. Você pode usá-lo na cláusula if como expressão booleana normal.fonte
Algo assim pode ajudar
fonte
Na verdade, de acordo com jsperf.com , as operações do DOM são mais rápidas e, em seguida, $ (). Prop () seguido de $ (). É () !!
Aqui estão as sintaxes:
Eu pessoalmente prefiro
.prop()
. Ao contrário.is()
, também pode ser usado para definir o valor.fonte
Alternar caixa de seleção marcada
fonte
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 em várias caixas de seleção. Com isso, não é necessário remover IDs ou IDs dinâmicos. Este código funciona com os mesmos IDs.
Link de referência
fonte
Como é meados de 2019, o jQuery às vezes leva o banco de trás para coisas como VueJS, React etc. Aqui está uma opção pura de ouvinte de carga de baunilha Javascript:
fonte
Sua pergunta não é clara: você deseja fornecer "id do array da caixa de seleção" na entrada e obter
true/false
a saída - dessa forma, você não saberá qual caixa de seleção foi marcada (como o nome da sua função sugere). Portanto, a seguir, minha proposta de corpo do seuisCheckedById
que, na entrada, recebe a caixa de seleçãoid
e o retorno da saídatrue/false
(é muito simples, mas seu ID não deve ser palavra-chave),Mostrar snippet de código
fonte
use o código abaixo
fonte
$(function() { $("[id$='chkSendMail']").on("change", ShowMailSection); });
$("[id$='chkSendMail']:checked]")
deve funcionar muito bem