Jump to content
Fórum Script Brasil
  • 0

Verificar se checkbox está selecionado


vini_loock

Question

Olá.

Estou precisando verificar se um checkbox está selecionado, mas não está dando certo.

$('td').click(function(){
        if($(this).parent().find("input").attr('checked') == true){
            $(this).parent().find("input").attr('checked', false);
        }else{
            $(this).parent().find("input").attr('checked', true);
        }
    });

A ideia é que ao clicar em uma coluna da tabela, ele volte para a linha e peque um input radio ou checkbox que está dentro de uma td, isso ele já está fazendo.Mas o problema está quando clica-se de novo, que era para desmarcar, mas nada acontece.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

um exemplo ae

function valida_chk(){

    var campo = document.forms[0];
    var cont = 0;

    for (i = 0; i < campo.elements.length; i++){
        tipocampo = campo.elements[i].type;
        if (tipocampo == 'checkbox'){
            if (campo.elements[i].checked == true){
                cont++;
            }
        }
    }

    if (cont == 0)
        msg = 'Selecione pelo menos uma opção';
    else
        msg = 'Selecionados (qtd): ' + cont;

    alert(msg);

    if (cont == 0)
        return false;
    else
        return true;
}
<form action="pagina.asp" method="post" name="frm1" onSubmit="java script: return valida_chk();">
	<input type="checkbox" name="chk1" value="0" />0<br />
	<input type="checkbox" name="chk2" value="1" />2<br />
	<input type="checkbox" name="chk3" value="2" />3<br />
	<input type="checkbox" name="chk4" value="3" />4<br />
<input type="submit" name="sbm1" value=">>" />
</form>

Link to comment
Share on other sites

  • 0

Vini, você está usando jquery né? Saco bastante de mootools(outro framework), mas me dei o trabalho de olhar a doc do jquery pra te responder xD

Tente assim:

$('td').click(function(){
    $(this).parent().find("input").click();
});

Edited by fiote
Link to comment
Share on other sites

  • 0

Vlaew vocês 2, mas eu consegui resolver ainda d uma terceira forma.

Eu acho que a jquery não retorna true ou false com esse metodo, então peguei o id para trabalhar com ele pelo js msmo.

Ficou assim:

$('tbody td').click(function(){
        if($(this).parent().find("input").attr('type') == 'checkbox'){
            var id = $(this).parent().find("input").attr('id');
            if(document.getElementById(id).checked == true){
                document.getElementById(id).checked = false;
            }else{
                document.getElementById(id).checked = true;
            }
        }else{
            $(this).parent().find("input").attr('checked', true);
        }
    });

Vlw.

Link to comment
Share on other sites

  • 0

Vini, a minha opção não precisa de true ou false (tinha um IF ali errado que eu deletei).

Ela simplesmente vai ativar o evento click do checkbox sempre que você clicar na sua td. E como é que o checkbox funciona? Se ele está desmarcado e você clicar, ele fica marcado. Se ele está marcado e você clicar, ele desmarca... mas você não precisa se preocupar com isso.

O $(this).parent().find("input").click(); "finge" um click no checkbox, alternando seu status.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...