Jump to content
Filipe_O

Actualizar pagina sem necessitar de botão submit

Recommended Posts

Filipe_O

Boas pessoal!

Tenho uma duvida:

Tenho um formulário com radio-buttons.

Andei a pesquisar como se verificava o conteúdo dos radio buttons, e lá encontrei:

<script>
tam = document.formulario.destinos.length;
for (var i = 0; i <tam; i++)
{
if (document.formulario.destinos[i].checked) 
var escolha = document.formulario.destinos[i].value;
}
document.write(escolha);
</script>

O formulário (referido nessa validação) está dentro do body.

Acontece que se eu colocar essa validação no <head>, ele não me faz nada, e se eu puser depois do form ou entre o form, assim que abro o browser apareçe uma mensagem a dizer "undefined" (pois não estava nada selecionado).

Ora, o meu objectivo seria que a validação fosse feita após a selecção de alguma opção.

Para testar o for, coloquei um radio button como checked, e no browser apareceu-me (como seria de esperar) o nome do radio button seleccionado.

Se assim é, porque é que não estando nenhum como checked ele me devolve undefined?

O objectivo seria apenas mandar para o ecrâ quando alguma opção fosse seleccionada

Sabem me ajudar?

Fiquem bem e obrigado!

Share this post


Link to post
Share on other sites
KTachyon

Devolve undefined, porque a variável não foi definida antes de ser retornada.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Filipe_O

Obrigado pessoal! 

Consegui através do "onchange". :(

Tenho outra duvida, e para não atulhar o forum, posto aqui:

Nesse formulario, existem forms, em que o resultado depende de outros forms, que por sua vez, dependem de outros forms.

Mostrar o resultado (do form final) através de if´s, tipo:

if ((resposta1=="A") && (resposta2=="B"))

if ((resposta1=="A")&& (resposta2=="C")) ...

Era bastante demorado e não era uma maneira nada inteligente..

Ando a investigar como posso o fazer..

Dão uma ideia?

Trata-se de um site que é uma agencia de viagens, e por exemplo, o preço de um adulto depende da escolha do tipo de hotel, que por sua vez depende do destino escolhido.

Eu tenho um array para cada destino (com os valores dos serviços)

[EDIT]

Eu percorro os forms, assim:

for (var i=0; i <dest; i++)
 {
	if (document.formulario.destinos[i].checked) 
		var escolha = document.formulario.destinos[i].value;
 }

Desta maneira posso mostrar os resultados de acordo com o valor da variavel escolha, :

if (escolha == "Puntacana")
 {
	formulario.viagem.value  =    Puntacana[0]*2   + "€ (i/v)";
(etc)

O objectivo era igualar o valor da form seleccionada a uma posicão de um array destinado ás opções do utilizador.Tipo:

for (var i=0; i <dest; i++)
 {
	if (document.formulario.destinos[i].checked) 
		var op[1] = document.formulario.destinos[i].value;
 }
for (var i=0; i <hotel; i++)
 {
	if (document.formulario.destinos[i].checked) 
		var op[2] = document.formulario.destinos[i].value;
 }
etc...

[/EDIT]

[EDIT]

Ok, já percebi que não, pois op[1] (p.e) vai me dar apenas a escolha do utilizador, e não o valor, no array, associado a essa escolha.

Mas partindo por este principio, será possível? (associar as escolhas a uma variavel, ou array)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.