Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

[Resolvido] Marcar radio

Recommended Posts

Olá pessoal.

 

Tenho trez radios button com o mesno name e ID.

 

Estou tentando checar se algum deles está checkado.

Mas, o depurador diz:

 

"Não é possível obter valor da propriedade 'checked': o objeto é nulo ou não definido"

 

if (
   document.getElementById('escolha')[0].checked==false &&
   document.getElementById('escolha')[1].checked==false &&
   document.getElementById('escolha')[2].checked==false
)
  {
      alert("Selecione um tippo de pesquisa!"); document.getElementById('escolha')[0].focus(); return (false);
  }

Eis o campo:

      <input type="radio" id="escolha" name="escolha" value="emissao" onclick="abre('emissaoini');abre('emissaofim');fecha('entradaini');fecha('entradafim');fecha('fornecedores');" />Por data Emissão<br />
      <input type="radio" id="escolha" name="escolha"  value="entrada" onclick="fecha('emissaoini');fecha('emissaofim');abre('entradaini');abre('entradafim');fecha('fornecedores');" />Por data Entrada<br />
      <input type="radio" id="escolha" name="escolha"  value="fornecedor" onclick="fecha('emissaoini');fecha('emissaofim');fecha('entradaini');fecha('entradafim');abre('fornecedores');" />Por Fornecedor

Onde estou errando?

 

Depois, preciso validar se o primeiro esta checado, se o segundo ou o terceiro.

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode repetir o IDs.

 

getElementById(), vai retornar um unico elemento sempre.

 

 

 

você deve usar um getElementsByTagName(), e então testando o atributo .name dos inputs recebidos, você saberá q está tratando teus radios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.

 

Ficaria assim?

function valida_form_pesquisas(form)
{
function valida_form_pesquisas(form)
{
if (
 document.getElementsByTagName('escolha')[0].checked==false &&
 document.getElementsByTagName('escolha')[1].checked==false &&
 document.getElementsByTagName('escolha')[2].checked==false
)
  {
	 alert("Selecione um tipo de pesquisa!"); document.getElementsByTagName('escolha')[0].focus(); return (false);
  }

Pois assim não funcionou e nem da erro no depurador.

 

A própósito,

 

esse

 

getElementsByTagName

 

é o mesmo que o form.name?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não.

 

getElementsByTagName(), recebe um string, q se refere ao name da tag

 

 

ex:

getElementsByTagName('input')

 

 

a forma: form.campo é obsoleta, e deve ser evitada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi:

 

Um id por campo:

<input type="radio" id="escolhaemissao" name="escolha" value="emissao" onclick="abre('emissaoini');abre('emissaofim');fecha('entradaini');fecha('entradafim');fecha('fornecedores');" />Por data Emissão<br />
<input type="radio" id="escolhaentrada" name="escolha"  value="entrada" onclick="fecha('emissaoini');fecha('emissaofim');abre('entradaini');abre('entradafim');fecha('fornecedores');" />Por data Entrada<br />           
<input type="radio" id="escolhafornecedor" name="escolha"  value="fornecedor" onclick="fecha('emissaoini');fecha('emissaofim');fecha('entradaini');fecha('entradafim');abre('fornecedores');" />Por Fornecedor

Assim sendo, ficou assim:

 document.getElementById('escolhaemissao').checked == false &&
 document.getElementById('escolhaentrada').checked == false &&
 document.getElementById('escolhafornecedor').checked == false

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.