Jump to content

Passagem de parâmetros de um form


passarito
 Share

Go to solution Solved by I-NOZex,

Recommended Posts

Boas

Tenho aqui uma dúvida.

Por essa internet fora vejo exemplos parecidos com o que mostro a seguir:

<script>
function validar() {
 var qtd=form.qtd.value;
 alert(qtd);
}
</script>

<form>
 <input type="text" name="qtd">
 <input type="submit" onclick="return validar()">
</form>

Comigo, o script não funciona porque o form não passa.

Para os colocar a funcionar tenho de alterar as linhas seguintes:

function validar() ---> function validar(form)
<input type="submit" onclick="return validar()"> ---> <input type="submit" onclick="return validar(this.form)">

Alguém me consegue explicar isto?

Edited by passarito
Link to comment
Share on other sites

tens que chamar a funçao na action onsubmit do form

tens que referenciar qual o form por parametro mesmo

<script>
function validar(form) {
 var qtd=form.qtd.value;
 alert(qtd);
 return false;
}
</script>
<form onsubmit="return validar(this)">
 <input type="text"  name="qtd">
 <input type="submit" >
</form>
Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Link to comment
Share on other sites

Acho que ainda não percebeste a minha questão.

Porque é que os exemplos na web não fazem a passagem do form por parametro - Validar() - e eu tenho de o fazer - Validar(this.form)

A questão é só essa e que me está a deixar muito intrigado... Será porque eu tenho o script antes do body?

Também pensei que fosse de ter a opção Option Explicit activa, mas desactivei-a e o erro aconteceu na mesma!

Link to comment
Share on other sites

ta a ir buscar a referencia do form pelo nome do mesmo (form1)

no entanto eu corrigiria esse tutorial, e chamaria a funçao no onsubmit do form, é mais correto

caso perguntes porquê, bem, se existe tal action onsubmit, é porque faz logica usar para este tipo de açao, right?

Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Link to comment
Share on other sites

ta a ir buscar a referencia do form pelo nome do mesmo (form1)

ok, mas fazendo copy/paste deste exemplo, ele não funciona sem que eu o altere para passar o form na função. "Obriga-me" a alterar o return validar() para return validar(this.form)

Por fim reparei que o exemplo está em PHP e eu uso ASP. Será que em PHP não é necessário passar o form por parametro para o usarmos dentro de uma função em javascript?

Pode ser isto, ou é uma ideia estapafurdia?

Edited by passarito
Link to comment
Share on other sites

  • Solution

se mudas o nome do form, pelo nome do form digo o atributo name na tag form, claro que no js depois tambem tens que mudar

é que eu fiz copypaste e deu sem problemas

linguagem de servidor nao é o problema

Edited by I-NOZex
  • Vote 1

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Link to comment
Share on other sites

...e de repente, as nuvens desapareceram e fez um lindo dia de sol!

Está tudo explicado, é que os meus forms nunca ou quase nunca têm nome - na realidade nunca tive grande necessidade.

Como não tinha nome ele não sabia o que fazer!

Atribuindo um nome ao form tudo funciona +/- bem.

Faz o que pretendo mas na consola de erros envia-me um aviso que tu já me tinhas alertado:

"Warning: Element referenced by ID/NAME in the global scope. Use W3C standard document.getElementById() instead."

Assim sendo, está descoberto o mistério "and the show must go on"

Estava difícil entendermo-nos...

Obrigado e agora queres alguma coisa? Ah, que eu carregue no botãozito do like? Ok, então aqui vai!

Link to comment
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
 Share

×
×
  • 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.