Um form
(formulário) é usado para coletar informações do usuário através de perguntas.
Esta informação coletada pode ser enviada para um servidor.
Onde um programa pode processar a informação de um usuário, ou até a informação combinada de vários usuários.
A informação enviada neste exemplo terá a forma
atributo1=valor1 & atributo2=valor2 & atributo3=valor3 & ...
Uma lista de vários atributos, cada um com um valor.
Um exemplo simples do código de um form
pode ser visto abaixo:
####Código
<form action="https://www.w3schools.com/action_page.php" target="_blank">
<label for="fname">Nome:</label><br>
<input type="text" id="fnameid" name="fname" value="Joao"><br>
<label for="lname">Sobrenome:</label><br>
<input type="text" id="lnameid" name="lname" value="Silva"><br><br>
<input type="submit" value="Enviar">
</form>
-form
: tag para delimitar o formulário, os inputs que estiverem dentro desta tag pertencem a este formulário
action="https://www.w3schools.com/action_page.php"
: para onde a informação será enviada, normalmente um script no servidor irá processa a informaçãotarget="_blank"
: para que a resposta abra em uma nova abalabel
: um pequeno text indicando o nome de algum input
for="fname"
: qual o nome do input
ao qual este label
se refere.input
: a tag para indicar uma entrada do usuário, pode ser um texto, uma caixa de escolha, um calendário para escolher um dia, ...
type="text"
: o teipo do input, neste caso é um input de textoid="fnameid"
: o id do input
name="fname"
: o nome do input
que será o nome deste atributo na resposta, este atributo terá como valor assoziado o texto que o usuário colocar no input
, por exemplo fname=Joao
.value="Joao"
: Um valor padrão para o input
Ao ser enviado podemos ver uma página que mostrará uma lista de chave e valor das informações:
fname=Joao&lname=Silva
onde o atributo fname
tem o valor Joao
e o atributo lname
tem o valor Silva
.
Perceba também que estes valores são passados pela URL (no endereço do site), possibilitando guardar a URL se quiser reenviar as mesmas informações oportunamente.
input
dentro do form
Dentro do form
podemos ter vários tipos de elementos para a tag input
.
Aqui vamos listar o text
, checkbox
e radiobutton
.
Uma lista maior pode ser encontrada aqui.
Para escolher o tipo de input
temos que escrever o valor do atributo type
na tag input
.
Cada input
deve ter o atributo name
que será o nome do atributo deste input
.
O tipo text
é um textfield onde o usuário pode colocar qualquer palavra.
Temos a possibilidade de ligar o autocomplete
<input type="text" id="fname" name="fname" value="">
Temos a possibilidade de (des)ligar o autocomplete
<input type="text" id="fname" name="fname" value="" autocomplete="off">
São caixas de seleção, onde podemos selecionar quantas quisermos:
<form action="https://www.w3schools.com/action_page.php" target="_blank">
<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
<label for="vehicle1"> Eu tenho uma moto</label><br>
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
<label for="vehicle2"> Eu tenho um carro</label><br>
<input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
<label for="vehicle3"> Eu tenho um bote</label><br>
<input type="submit" value="Enviar">
</form>
São caixas de escolha, onde podemos escolher apenas uma dentre as opções:
<hr>
<p>Escolha a sua linguagem preferida:</p>
<form action="https://www.w3schools.com/action_page.php" target="_blank">
<input type="radio" id="html" name="fav_language" value="HTML">
<label for="html">HTML</label><br>
<input type="radio" id="css" name="fav_language" value="CSS">
<label for="css">CSS</label><br>
<input type="radio" id="java" name="fav_language" value="Java">
<label for="java">Java</label><br>
<input type="submit" value="Enviar">
</form>
<hr>
Escolha a sua linguagem preferida:
Ao acessar a internet o computador e o servidor se comunicam através de requisições, que são mensagens enviadas na forma de protocolos.
O método que o form
por padrão é o GET. Este método tem as seguintes características:
<form action="https://www.w3schools.com/action_page.php" target="_blank" method="post">
<label for="login">Login:</label><br>
<input type="text" id="login" name="login"><br>
<label for="pass">Password:</label><br>
<p style="color:red">Não coloque seu password aqui<br>
Essa informação aparecerá na tela seguinte
</p>
<input type="password" id="pass" name="pass"><br><br>
<input type="submit" value="Enviar">
</form>
Perceba que as informações enviada não aparecem na URL da tela de resultado
<hr>
<form action="https://www.w3schools.com/action_page.php" target="_blank" method="post">
<label for="login" id="lab-login-sc">Login:</label><br>
<input type="text" id="txt-login-sc" name="login" onclick="checkLoginAlert()"><br>
<label for="login" id="wrn-login-sc"></label><br>
<p style="color:red">Não coloque seu password aqui<br>
Essa informação aparecerá na tela seguinte
</p>
<label for="pass" id="lab-pass-sc">Password:</label><br>
<input type="password" id="txt-pass-sc" name="pass" onclick="checkPassAlert()"><br>
<label for="login" id="wrn-pass-sc"></label><br>
<input type="submit" value="Enviar">
</form>
<hr>
<script>
var wrn_login = document.getElementById("wrn-login-sc");
var txt_login = document.getElementById("txt-login-sc");
txt_login.addEventListener("keyup", () => {checkLogin()})
function checkLoginAlert(){
alert("O seu login deve conter 6 ou mais characteres");
}
function checkLogin(){
if(txt_login.value.length<6){
wrn_login.textContent = "O seu login deve conter 6 ou mais characteres";
wrn_login.style.color = "red";
}else{
wrn_login.textContent = "Login ok";
wrn_login.style.color = "green";
}
}
var wrn_pass = document.getElementById("wrn-pass-sc");
var txt_pass = document.getElementById("txt-pass-sc");
txt_pass.addEventListener("keyup", () => {checkPass()})
function checkPassAlert(){
alert("Sua senha deve conter a palavra HTML");
}
function checkPass(){
if(!txt_pass.value.toLowerCase().includes("html")){
wrn_pass.textContent = "Sua senha deve incluir a palavra HTML";
wrn_pass.style.color = "red";
}else{
wrn_pass.textContent = "Senha ok";
wrn_pass.style.color = "green";
}
}
</script>
.