Os formulários tem muitas utilidades, uma das principais seria a transferência de dados dentro da própria página HTML, sem que para isso seja necessária a intervenção de qualquer outro meio externo.
Ao se criar um formulário na página HTML, automaticamente é criada uma referência para este formulário, que fica guardada na propriedade form do objeto document. Como você deve ter visto na página que trata do objeto document, a propriedade form é um vetor, e a cada formulário criado também é criado um novo elemento para este vetor, o índice inicial deste vetor é 0 (zero) e varia até o número de formulários do documento -1.
Como você pode notar, cada formulário criado em uma página HTML, é considerado um objeto distinto, tendo suas próprias referências, métodos, propriedades e eventos associados. A forma de acessar-mos diferenciadamente esses formulários dentro da página HTML, é utilizar a propriedade form do objeto document.
Forma geral:
<FORM NAME="Nome"]
[ACTION="URL"]
[METHOD="GET
| POST"]
[onSubmit="evento"]>
Onde:
Nome = Nome do formulário, para futuras referências dentro da página HTML.
URL = Especifica o URL do servidor ao qual sera enviado o formulario.
GET | POST = metodos de transferencia de dados do browser para o servidor
Propriedades:
action - Especifica o URL do servidor ao qual sera enviado o formulario.
Ex: document.NomeDoFormulario.action
documet.GuestBook.action = "esaex@canudos.ufba.br"
elements - Vetor que armazena todos os objetos que são definidos dentro de um formulário (caixas de texto, botões, caixas de entrada de dados, checkboxes, botões de rádio). O número de elementos deste vetor varia de 0 (zero) até o número de objetos dentro do formulário -1.
Ex: document.NomeDoFormulario.elements[indice]
method - Seleciona um método para acessar o URL de ação. Os métodos são: GET e POST. Ambos os metodos transferem dados do browser para o servidor, com a seguinte diferenca:
METHOD=GET - os dados de entrada sao acrescentados ao endereço (URL) associado, como se fossem uma query (pesquisa a banco de dados) comum;
METHOD=POST - os dados nao são acrescentados ao URL, mas fazem parte do corpo da mensagem enviada ao servidor.
Obs.: Ométodo mais usual é o POST:
Esta propriedade pode ser alterada, porém só surtirá efeito antes que o formulário seja mostrado na tela.
Ex: document.NomeDoFormulario.method = "post" ( ou "get")
Métodos:
submit - Transfere os dados do formulário para o endereço especificado em action, para serem processados. Funcionado de maneira análoga ao botão submit em HTML.
Ex: document.NomeDoFormulario.submit( )
Eventos:
onSubmit - Ocorre quando um botão do tipo SUBMIT recebe o clique do mouse, transferindo os dados de um formulário para o servidor especificado em action.
Os dados só são enviados se o evento receber um valor verdadeiro (true), valor este que pode ser conseguido como resultado a chamada de uma função que valida as informações do formulário.
Ex: document.NomeDoFormulario.onSubmit ="return Valida_Informacoes(NomeDoFormulario)"
<HTML>
<HEAD>
<TITLE>Exemplo - Objeto Form</TITLE>
<META NAME=GENERATOR CONTENT="Claris Home Page 2.0">
</HEAD>
<BODY>
<FORM action="mailto:esaex@canudos.ufba.br" method="POST">
<P><TT><B><H1>Exemplo:</H1></B></TT>
<P>Este exemplo demonstra a funcionalidade de um
formulário, para improvisar um "Guest Book"
<P>
Nome,Nascimento: <BR>
<INPUT TYPE="text" NAME="nomidade" VALUE=" " SIZE=70><BR>
Endereço: <BR>
<INPUT TYPE="text" NAME="endereco" VALUE=" " SIZE=70><BR>
E-Mail: <BR>
<INPUT TYPE="text" NAME="email" VALUE=" "
SIZE=70><BR>
Sua Home-Page: <BR>
<INPUT TYPE="text" NAME="hp" VALUE=" " SIZE=70><BR>
IRC: <BR>
<INPUT TYPE="text" NAME="irc"
VALUE=" " SIZE=70><BR>
Sugestões, etc.: <BR>
<TEXTAREA NAME="sujestao" ROWS=7 COLS=70></TEXTAREA>
<P><CENTER><INPUT TYPE="submit" NAME="Submit"
VALUE="Enviar"> <INPUT TYPE="reset" VALUE="Limpar"></CENTER>
</FORM>
<CENTER>
<FORM>
<INPUT TYPE="button" VALUE="Página Anterior" onClick="history.go(-1)">
<IMG SRC="S177.gif" WIDTH=540 HEIGHT=46 ALIGN=bottom><BR>
<FONT SIZE="-2">Página desenvolvida por </FONT><FONT
SIZE="-2"><A HREF="mailto:esaex@canudos.ufba.br">Anderson Barros
Torres</A></FONT><FONT SIZE="-2">. Julho/97</FONT>
</FORM>
</CENTER>
</BODY>
</HTML>