Ir para conteúdo

POWERED BY:

Arquivado

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

alexandremanowar

[Resolvido] Verificar radio

Recommended Posts

E ae pessoal beleza

 

como eu faço uma função em js para pegar o valor do radio que esta selecionado, por exemplo dos radio abaixo

 

nivel: <input type="radio" name="nivel" id="nivel" value="Administrador">Administrador
<input type="radio" name="nivel" id="nivel" value="Supervisor">Supervisor
<input type="radio" name="nivel" id="nivel" value="Gerente">Gerente
<input type="radio" name="nivel" id="nivel" value="Operador">Operador

A idéia é clicar em uma das opções acima e pegar o valor da que foi selecionada! Como faço isso em js?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom no seu caso acho que isso resolve

 

function radio(id) {
var radio = id;
// o alerta é so pra ter uma ideia e ver se esta funcionando
alert(radio);
}

e no seus radio assim

 

<input type="radio" name="nivel" id="nivel" value="Supervisor" onclick="radio('2');">Supervisor

Isso chama a função e altera o valor da variavel toda vez que um radio for clicado

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a e beleza

 

Obrigado pela atenção, o que você fez verifica se esta ou não funcionando mas eu preciso verificar qual dos radios esta selecionado e pegar o valor! Alguém tem uma solução de como fazer isso? Será que fazer algum laço com for resolveria isso? Como seria esse laço?

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolve?

<html>
	<head>
		<script>
		function verificaRadio(_obj){
			var valor = _obj.value;
			alert(valor);
		}
		</script>
	</head>
	<body>
		<form>
			<input type = "radio" id = "teste" name = "teste" value = "a" onClick = "java script: verificaRadio(this);"> A 
			<input type = "radio" id = "teste" name = "teste" value = "b" onClick = "java script: verificaRadio(this);"> B
			<input type = "radio" id = "teste" name = "teste" value = "c" onClick = "java script: verificaRadio(this);"> C
			<input type = "radio" id = "teste" name = "teste" value = "d" onClick = "java script: verificaRadio(this);"> D
			<input type = "radio" id = "teste" name = "teste" value = "e" onClick = "java script: verificaRadio(this);"> E 
		</form>
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, com um for resolveria também.

 

Basta pegar todos os campos, depois verificar se é do tipo radio e se está checado. Um exemplo simples:

var local = document.forms['nome_form'];
for (var i=0, l=local.elements.length; i<l; i++)
{
	if ( local.elements[i].type=='radio' && local.elements[i].checked )
	{
		alert(local.elements[i].value);
	}
}
Aqui no fórum tem alguns tópicos com outros exemplos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae pessoal beleza

 

Valeu pela força esse exemplo do Lex resolveu o meu problema, porém tenho uma outra dúvida estou quebrando a cabeça aqui e nada até agora, o problema é o seguinte, eu verifico se o radio esta selecionado se não tiver eu quero que ele seja selecionado automáticamente! Eu fiz por exempla da seguinte forma:

 

if(document.getElementByI("nivelAdministrador").checked == false)

{

document.getElementByI("nivelAdministrador").checked = true;

}

 

mas não esta funcionado, como eu posso resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom no seu caso acho que isso resolve

 

function radio(id) {
var radio = id;
// o alerta é so pra ter uma ideia e ver se esta funcionando
alert(radio);
}

e no seus radio assim

 

<input type="radio" name="nivel" id="nivel" value="Supervisor" onclick="radio('2');">Supervisor

Isso chama a função e altera o valor da variavel toda vez que um radio for clicado

hantaro, eu acho que sua idéia pode funcionar para o que eu preciso. Isso, se tiver como eu utilizar o valor armazenado na variavel radio depois.

 

Eu preciso desse valor em ASP, como faço para recuperá-lo?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passa na url da pagina

 

window.location="minha_pagina.asp?id="+radio;

so que no caso a pagina sofrera um reload, e enviara para outra pagina, para nao acontecer o reload, so com ajax

 

Isso é tudo que posso te dizer, porque nao sei nada de asp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, na verdade eu fiquei pensando ontem a noite, e percebi que o que quero é impossível. Não tenho como pegar o valor da variável sem mudar de página...

 

A solução que encontrei foi de chamar a mesma página passando o valor do rádio.

 

Então no começo da página faço um if, verificando se o valor do rádio é vazio. Se não for vazio, ai sim direciono para a página que preciso.

 

Ou seja, nem preciso da função que achei interessante, rs...

 

Mas obrigado pela força...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não desespera não... existem muitas alternativas para isso!

 

Resumindo temos:

1. Na página "asp" que for receber os valores:

Se a variável POST não receber nenhum valor, é porque nenhum item foi marcado. Você pode atribuir um valor automático à ela nessa página ASP.

 

2. Se nenhum radio for checado, você pode dar uma mensagem de alerta informando ao usuário mensagens do tipo (Alerta! Nenhuma opção foi selecionada!). Não se esqueça de inserir "return false" no script para evitar que o mesmo prossiga! :-P

 

3. Deixe um radio já checado automaticamente (com checked). Assim, o usuário não terá outra alternativa a não ser enviar o formulário com uma opção já selecionada. Isso também irá forçá-lo a alterar a opção, caso a mesma não seja a resposta correta para esse usuário.

 

Tudo bem... aí você me diria: Ah não klonder!!! Eu quero fazer assim: Deixar todos os radios em branco para que o usuário escolha um deles! E se ele não escolher, eu irei escolher para ele, ainda na página do formulário! Eu quero assim e pronto!!!!

 

Então eu responderia: Calma amigo! Não fique bravo... se você quer realmente isso, basta copiar o script abaixo e colá-lo em seu editor preferido!

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
	<meta name="author" content="by Klonder">

	<title>Formulário clínico</title>
	
<script language="JavaScript">
<!--
//Definindo as variáveis:	
var objRadio;
var i;
var checado = 0;


function validarForm() {
objRadio = document.forms["form1"].elements["altura"];
	
	for (i=0; i < objRadio.length; i++) {
	   if (objRadio[i].checked == true) {
		 alert("O valor do radio button é: "+objRadio[i].value);
		 //Caso algum item tenha sido checado, será atribuído
		 //um valor diferente de "0" à variável checado;
		 checado = 1;
		 return false;
	   }
	}
	
	if (checado == 0) {
		 	alert("Irei respeitar a sua privacidade!\nVou marcar a 5ª opção!");
			objRadio[4].checked = true;
			return false;	
	}
}

-->
</script>

</head>

<body>
<form name="form1" action="pagina_qualquer.asp"  method="post" onsubmit="return validarForm();">
Selecione a sua altura:
<br><input type="radio" name="altura" value="0"> Entre 1,40m e 1,59m
<br><input type="radio" name="altura" value="1"> Entre 1,60m e 1,79m
<br><input type="radio" name="altura" value="2"> Entre 1,80m e 1,99m
<br><input type="radio" name="altura" value="3"> Mais de 2,00m
<br><input type="radio" name="altura" value="4"> Não é da sua conta! Seu mané!

<br><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

É isso... ficam aí as alternativas que eu deixo como opção.

 

Abraços e feliz natal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Klonder, desculpe a demora para responder, estive ausente.

 

Não tenho problemas em deixar em um radio já marcado não, na verdade nesse momento já está assim.

 

O que queria fazer mesmo era, na mesma página que seleciono meu radio preferido, passar os valores via post para outra página.

 

O valor do hidden será passado em um hidden, porém não será o valor do radio puro, será assim:

 

numero de cadastro + data + valor do radio selecionado.

 

Como percebi que não tenho como fazer o que queria, vou chamar a mesma página no botão, e quando a página for carregada, passa por um if para ver se o valor do rádio é vazio, se não for vazio, ai faço o post com os valores que quero.

 

Foi a melhor solução que encontrei para meu problema, caso eu esteja errado, por favor me corrija.

 

Abraços e obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No código a seguir, eu pego o valor de um campo (que estaria armazenando um código qualquer), faço a união com a data atual e depois faço a união com o valor do radio button, sem a necessidade de ter de chamar uma nova página (pois isso tornaria mais lento o processo). Nesse caso, o JavaScript já monta a string na hora, antes do form ser enviado.

 

A string fica semelhante a: codCliente-dia.mes.ano-valorRadio

 

Segue o código abaixo:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
	<meta name="author" content="by Klonder">

	<title>Formulário clínico</title>
	
<script language="JavaScript">
<!--
//Definindo as variáveis:	
var objRadio;
var i;
var checado = 0;
var strData;
function dataHoje() {
	var data = new Date();
	strData = data.getDate()+"."+(data.getMonth()+1)+"."+data.getYear();
	document.getElementById("data").value = strData;
}

function validarForm() {
objRadio = document.forms["form1"].elements["altura"];
	
	for (i=0; i < objRadio.length; i++) {
	   if (objRadio[i].checked == true) {
		 
//Alterando o valor do hidden;
document.getElementById("string1").value = document.getElementById("codigo").value+"-"+strData+"-"+objRadio[i].value;
		 //Apenas alguns alertas
		 alert("O valor do radio button é: "+objRadio[i].value);
		 alert("O valor da string completa será: "+document.getElementById("string1").value);
		 
		 //Caso algum item tenha sido checado, será atribuído
		 //um valor diferente de "0" à variável checado;
		 checado = 1;
		 return false;
	   }
	}
	
	if (checado == 0) {
		 	alert("Irei respeitar a sua privacidade!\nVou marcar a 5ª opção!");
			objRadio[4].checked = true;
			return false;	
	}
}

-->
</script>

</head>

<body onLoad="dataHoje();">
<form name="form1" action="pagina_qualquer.asp"  method="post" onsubmit="return validarForm();">
Selecione a sua altura:
<br><input type="radio" name="altura" value="0"> Entre 1,40m e 1,59m
<br><input type="radio" name="altura" value="1"> Entre 1,60m e 1,79m
<br><input type="radio" name="altura" value="2"> Entre 1,80m e 1,99m
<br><input type="radio" name="altura" value="3"> Mais de 2,00m
<br><input type="radio" name="altura" value="4"> Não é da sua conta! Seu mané!
<br><br>Esse seria um hidden, que recebe dados de um banco de dados, por exemplo:
<br>codCliente: <input type="text" id="codigo" value="0b45vb34">
<br><br>O campo abaixo mostra a data de hoje, mas ele é desnecessário, pois a data pode ser obtida facilmente via código-fonte, sem necessitar de campos quaisquer:
<br>Data de hoje: <input type="text" id="data" value="">

<br><br>Campo que está como texto apenas para visualização, mas poderia ser transformado em um hidden, bastando alterar "text" para "hidden":
<br>String completa: <input type="text" id="string1" value=""> (clique no botão "Enviar" abaixo para visualizar a string formada).

<br><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Bom, pelo menos foi isso que eu entendi da sua "dúvida".

Mas mano, não desanima não... sempre existem soluções viáveis. E o ideal mesmo, quando se tem algo em mente mas falta um pequeno trecho de idéias para implementá-la, é vir aqui mesmo e pedir a sugestão dos amigos. Talvez alguém tenha vivido alguma situação semelhante e possa dar uma ótima sugestão!

 

Abraços e boa sorte com o projeto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caraca, ficou ótimo, tiro o chapéu.

 

Só me tire uma dúvida, eu tenho como fazer isso:

 

<script>

function dataHoje() {
	var data = new Date;
	strData = <%="05/01/2009"%>;
	document.getElementById("data").value = strData;
}

</script>

Da forma que está sei que dá erro, ele até aceito o asp dentro do script, mas entende como se fosse uma conta e divide 5 por 1 por 2009. Rs.

 

Talvez parece meio estranho o que quero, mas é que preciso da data em formato juliano, ou seja, preciso saber qual dia do ano estamos. Por exemplo, hoje que é dia 5 de janeiro, é o quinto dia do ano.

 

Tenho uma função em asp que transforma, mas não sei fazer em javascript, se der para fazer o que fiz acima, meus problemas acabam (por enquanto).

 

Mas de qualquer forma, ficou muito boa sua função. Parabéns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou com aspas simples?

 

Exemplo:

function dataHoje() {
	strData = '<%="05/01/2009"%>';
	document.getElementById("data").value = strData;
}

Ou então, se preferir, o código JavaScript que obtém a data no formato Juliano (mano, foi froids isso! Tive que estudar pois não sabia como é a data no formato Juliano. Na verdade, eu nem sabia que era utilizada ainda).

 

<html>
<head>
<title>Data de hoje - formato Juliano</title>
</head>
<body>
Data de hoje, no formato juliano:
<script language="JavaScript" type="text/javascript">
var data = new Date();
var inicioAno = new Date(data.getFullYear(),0,1);
var dias = Math.floor((data.getTime()-inicioAno.getTime())/86400000);

document.write (dias+""+data.getFullYear());
</script>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se sinta mal não, para eu conseguir fazê-la em asp também tive que suar bastante. Eu nem tinha idéia do que era data juliana.

 

Achei interessante saber que Júlio César bolou o calendário. UHAhua, mas isso não vem ao caso agora né.

 

Colocando entre aspas simples funcionou sim, direitinho.

 

Perfeito.

 

Klonder, você me ajudou demais, obrigado mesmo.

 

Quando tiver alguma dúvida de VB, dê uma passadinha pela área respectiva, hehe. Farei de tudo para te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, vou precisar de sua ajuda mais um pouco, mas agora é coisa simples.

 

No seu form, você colocou o action para ir para pagina_qualquer.asp, e no submit para return validarForm.

 

Ai ele vai para o validarForm mas não executa o action (não vai para a pagina_qualquer.asp).

 

Como faço para ele ir para essa página após executar a função?

 

Valeu...

 

Achei, é só retirar o retunr false né.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim! Eu tinha deixado essa "trava" para ficar testando, sem ter de ficar carregando outra página.

 

Bastar tirar essa "trava" e liberar o form para ser submetido. Para isso basta deixar o 1º return como "true" (linha 36 do código que postei). Malz não ter avisado antes...

 

Deverá ficar assim nesse trecho de código:

 

//Caso algum item tenha sido checado, será atribuído
		 //um valor diferente de "0" à variável checado;
		 checado = 1;
		 return true; //<--------- Deixar como true para que o formulário seja submetido
	   }

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.