Checkar um radio button com uma function javascript

Olá
Estou tentando check um checkbox com javascript mais assim nao funciona alguem teria alguma ideia de como fazer ?

function checkbox()
{
document.frmDados.cfpag[0].checked = true;

}

Grato

Pode fazer assim:

<script type="text/javascript">
function check(id){
	document.getElementById(id).checked = true;
}
</script>
<input type="button" onclick="javascript:check('a')" name="Check" value="Check"/>

<input type="checkbox" id="a" value="a" name="a" />

Eu criei essa função com retorno uma vez para checar se um radio esta selecionado,e da pra vc usar essa mesma função com um checkbox para verificar se tem mais de um checado, vc passa o obj como parametro:

function verificaRadio(str)
{
 var testa;
 var itemchecked = false;
 for(var i = 0 ; i < str.length ; i++)
 {
   testa = str[i];
   if(testa.checked)
   {
     itemchecked = true;
   }
 }        
   if(!itemchecked)
   {
     return false;
    }else
   {
    return true;
    }
}

espero ter ajudado !
abraço…

Cara, a tua sintaxe está correta; Acredito que, talvez, o problema esteja no nome da função, tente mudar de checkbox para algo como checkboxTest(). Não tenho certeza, mas é possível que o teu navegador esteja fazendo pausa a essa situação.

Para que possamos te ajudar, tu tens de dizer qual erro está ocorrendo, pq se o objeto document.frmDados.cfpag realmente é um checkbox, então o .checked = true tem de funcionar.

Entretanto, percebi que tu indicaste um índice:

document.frmDados.cfpag[0]

Isso só deve ocorrer se tu tens mais de um checkbox com o mesmo nome.

Exemplo:
Neste caso:

Tu podes perceber que há dois checkboxes com a mesma ID, então teria de usar:

document.getElementById(“tipo”)[0]
e
document.getElementById(“tipo”)[1]

Para poder acessar os dois campos.

Porém, se tiver somente um:

O comando é sem índice:

document.getElementById(“tipo”)

vinnymaram, para o propósito que apresentaste - a saber, verificar radio selecionado - acredito que possas encurtar um pouco a função, deste modo:

Supondo que tu tenhas um grupo de radios de mesma ID:

E quer saber se pelo menos um deles está marcado, podes usar a seguinte função:

function verifyRadio(id)
  {
   for (element in document.getElementById(id))
     {
      if (document.getElementById(id)[element].checked)
        { return true; }
     }

   return false;
  }

A função acima irá percorrer o grupo de radios de mesma id (passada como parâmetro) e irá retornar true se algum estiver marcado. A função também se aplica a checkboxes.

Nota: sei que alguns podem estar pensando “mas em um grupo de radios algum tem de estar marcado!”. Isso não é verdade, lembrem-se que, caso um radio não esteja marcado por padrão para estar selecionado, o grupo pode ser submetido vazio.


Aqui vai outra dica: abaixo uma função que verifica em um dado grupo de checkboxes se X checkboxes estão marcadas, onde X indica o número de opções que têm de estar selecionadas.

function verifyCheckboxes(id, min)
  {
   var count = 0;

   for (element in document.getElementById(id))
     {
      if (document.getElementById(id)[element].checked)
        {
         if (++count == min)
           { return true; }
        }
     }

   return false;
  }

Na função acima, tu deves especificar o número mínimo de checkboxes que deverão estar selecionadas para que a função retorne true.

Suponha que tenhas esse código:

E queres verificar se pelo menos 2 das 3 opções estão marcadas, então você chamará:

verifiyCheckboxes(“tipo”, 2) // onde 2 é o número de opções que deverão estar marcadas

Flws :wink: