A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Laboratório de Informática Formulários em HTML

Apresentações semelhantes


Apresentação em tema: "Laboratório de Informática Formulários em HTML"— Transcrição da apresentação:

1 Laboratório de Informática Formulários em HTML
Bruno C. de Paula Laboratório de Informática Formulários em HTML 1º Semestre 2010 > PUCPR > BSI

2 Formulários mal construídos podem mudar o mundo!
25/03/2017 Cédula das eleições americanas de 2000 Eleições americanas de 2000 Formulários mal construídos podem mudar o mundo!

3 Resumo da aula Na aula hoje, nosso objetivo é aprender a criar formulários em HTML 4 e 5; Hoje, vamos nos preocupar apenas com a interface do formulário, o que permite que o usuário interaja com o documento; Em situações reais, para um formulário fazer sentido, será necessária a utilização associada de uma linguagem cliente como JavaScript ou no servidor como PHP; Também deixaremos claro que nada impede o uso de forms HTML5 já!

4 Resumo da aula Deveremos aceitar que nossos formulários sempre deverão ser construídos de maneira acessível; Começaremos a entender também que a criação de formulários envolve conceitos das áreas: Projeto de Formulários; Usabilidade; Validação de Formulários; Psicologia Cognitiva; Etc...

5 Material extra referente ao assunto da aula

6 Tags HTML referenciadas na aula (em Português –site Referenciando)
Contâiner de formulário: <form>; Rótulo de item de formulário: <label>; Botão: <button>; Elemento de entrada de dados: <input>; Caixa de texto multilinha: <textarea>. Caixa de seleção: <select>; Opção de um select: <option>;

7 Tags HTML referenciadas na aula (em Português –site Referenciando)
Grupo de opções em um select: <optgroup>; Agrupamento de itens de formulário: <fieldset>; Legenda de um grupo de itens de formulário: <legend>;

8 Tags HTML referenciadas na aula (em Inglês – site SitePoint)
Contâiner de formulário: <form>; Rótulo de item de formulário: <label>; Botão: <button>; Elemento de entrada de dados: <input>; Caixa de texto multilinha: <textarea>. Caixa de seleção: <select>; Opção de um select: <option>;

9 Tags HTML referenciadas na aula (em Inglês – site SitePoint)
Grupo de opções em um select: <optgroup>; Agrupamento de itens de formulário: <fieldset>; Legenda de um grupo de itens de formulário: <legend>;

10 Propriedades CSS referenciadas na aula (em Inglês –site SitePoint)
Bordas: border-width: largura da borda; border-style: estilo da borda; border-color: cor da borda. Determinar a cor da letra e o fundo: color:cor do elemento; background-color: cor de fundo; background-image: imagem de fundo; width: largura de um elemento;

11 Ponto chave da aula! 25/03/2017 Fonte: Página 173 do Beggining CSS
A interface dos elementos de formulário é diferente em cada navegador!

12 25/03/2017 Ponto chave da aula: Renderização padrão em navegadores diferentes é sempre diferente. Itens NUNCA vão ficar exatamente iguais. Fonte da imagem:

13 CSS resolve parcialmente este problema!
25/03/2017 CSS resolve parcialmente este problema! Teremos uma aula dedicada à sobre formatação de formulários. Não resolve totalmente pois problemas de margem, espaçamento, etc, persistem.

14 A tag <form> Formulário (tag <form>):
contâiner para uma quantidade ilimitada de componentes de interação com o usuário. Aceita um número limitado de tipos de componentes diferentes. <FORM id="form1" action="url" method=“post" > <!--...Coloque seus controles aqui... --> </FORM>

15 <fieldset>: Conjunto de campos;
25/03/2017 <fieldset>: Conjunto de campos; <legend>: Legenda dos fieldset; <label>: Rótulo de item de formulário; <input type=“text”>: Caixa de texto; <input type=“submit”>: Botão de envio; accesskey: Tecla de acesso; <form action=" id="f1"> <fieldset> <legend>Dados Pessoais</legend> <label>Nome: <input type="text" name="n" id="n" accesskey="n" /> </label> <label for="i" accesskey="i" title="Idade em anos"> <input type="text" name="i" id="i" value="18" maxlength="3" size="3" /> <input type="submit" /> </fieldset> </form>

16 Tipos de componentes de formulário no HTML Versão 4
25/03/2017 1 ou mais tags por componente; Limitadíssimos!! Cada componente é representado por uma ou mais tags; Por exemplo, uma caixa de texto de uma linha é representada pela tag: <input type="text" id="txt1" name="txt1" /> Uma caixa de seleção com duas opções é representada por: <select id="s1" name="s1"> <option>Opcao1</option> <option>Opcao2</option> </select> Todo controle deve ter um nome (propriedade name) e um valor (propriedade value); O valor pode mudar conforme interação com o usuário.

17

18

19 Tipos de componentes do HTML Versão 5
Ainda em discussão! É importante conhecer o futuro! Vamos usar o Navegador Opera para testá-las; Opera Versão Portátil em:

20

21 Atributos essenciais dos componentes
25/03/2017 Atributos essenciais dos componentes Atributo id: identifica o controle para o cliente web / JavaScript; Atributo name: identifica o controle para o servidor web; Atributo value: indica o valor do controle e pode mudar; Atributo type: indica o tipo de controle;

22 Criar um formulário (siga esta receita)
1) Definir o contâiner de formulário <form>; 2) Definir o action do formulário, ou seja, para onde ele vai; 3) (opcional) Definir o método de envio do formulário (GET ou POST); 4) (opcional) Delimitar os grupos de itens através de <fieldset>; 5) (opcional) Usar uma legenda para cada grupo <legend>;

23 Criar um formulário (siga esta receita)
6) (opcional) Definir um rótulo para cada item de formulário <label>; 7) Criar o item de formulário associado ao rótulo <input>, <button>, etc. 8) (acessibilidade) Definir teclas de acesso, através do atributo accesskey; 9) Definir o botão de submissão; 10) CSS: Formatar o formulário.

24 Exemplo de formulário Vamos começar com um formulário bastante simples; Ao clicar no botão cadastrar, os dados são enviados para a página:

25 E vamos evoluir para o formulário a seguir...

26 1) Definir o contâiner de formulário (<form>)
25/03/2017 25/03/2017 1) Definir o contâiner de formulário (<form>) Não mostra nada! Todos os componentes de formulário devem ser colocados dentro do elemento <form>. <form> </form>

27 2) Definir o action do formulário, ou seja, para onde ele vai;
25/03/2017 Troque o action pelo action que você precisa! O formulário ao ser enviado, submete os dados para a página indicada pelo atributo action; URL: <form action=" </form>

28 3) (opcional) Definir o método de envio (GET ou POST)
Método GET: envio das informações pela barra de endereços; visível; limitado a cerca de 2000 caracteres; Método POST: envio das informações via cabeçalho HTTP; ilimitado (teórico).

29 métodos GET e POST servidor web cliente web

30 cliente web

31 No método GET, a informação é passada via barra de endereços

32 As vars são separadas por &
25/03/2017 As vars são separadas por &

33 25/03/2017 Na PUCPR, aperte F12 para exibir o Firebug! No método POST, a informação só pode ser vista com ferramentas especiais (Firebug)

34 25/03/2017 4) (opcional) Delimitar os grupos de itens através de <fieldset>; <form action=" <fieldset></fieldset> </form>

35 5) (opcional) Usar uma legenda para cada grupo <legend>;
25/03/2017 5) (opcional) Usar uma legenda para cada grupo <legend>; <form action=" <fieldset> <legend>Obrigatorio</legend> </fieldset> <legend>Opcional</legend> </form> 25/03/2017

36 25/03/2017 25/03/2017 6) (opcional) Definir um rótulo para cada item de formulário <label>; <form action=" <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> </fieldset> <legend>Opcional</legend> </form> O atributo for deve ter como valor o id do componente associado;

37 Especifica um rótulo que estende a área de foco do elemento;
25/03/2017 25/03/2017 <label> Especifica um rótulo que estende a área de foco do elemento; Evita tiro ao alvo. Permite a definição formal de rótulos para itens do formulários; Quando o usuário clica no rótulo, o item de formulário é selecionado ou checado. Aumentam a área útil de seleção de um item de formulário; Lembre-se: caixas de texto não tem rótulos associados por padrão! Útil para melhorar a acessibilidade e usabilidade de seu formulário; Essencial para criar formulários da maneira certa, principalmente quando você usar botões de rádio e caixas de checagem! Associado à tag <label>. <label>Nome:<input type="text" name="nome"/></label> <label for="idade">Idade:</label> <input type="text" name="idade" id="idade"/> Observe que há duas maneiras de especificar o rótulo. Na primeira, tanto o controle quanto o rótulo estão dentro da tag <label>. Na segunda, a associação é feita pelo atributo id. A segunda maneira é mais usual.

38 Com <label>: Área clicável em roxo Sem<label>:

39 7) Criar o item de formulário associado ao rótulo
25/03/2017 Vamos criar uma caixa de texto através da tag input com atributo type = text; Principais atributos para as caixas de texto de uma linha e caixa de senha (tag <input>) Ver: name: nome, usado na submissão; id: identificador, usado em Javascript e associação com rótulos; size: tamanho aparente em número de caracteres; maxlength: número máximo de caracteres permitidos na digitação; value: valor padrão quando a página é carregada; readonly: somente leitura, não permite edição; disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT).

40 25/03/2017 <form action=" <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" /> </fieldset> <legend>Opcional</legend> </form>

41 O atributo for deve ter como valor o id do componente associado;

42 8) (acessibilidade) Definir teclas de acesso (atributo accesskey)
25/03/2017 8) (acessibilidade) Definir teclas de acesso (atributo accesskey) Firefox: SHIFT + ALT + TECLA; IE: ALT + TECLA; Cuidado com conflitos! Firefox 2.0 and Access Keys Discussão sobre teclas de acesso no Firefox Avaliador de Acessibilidade Recomendações acessibilidade <form action=" <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> </form>

43 9) Definir o botão de submissão
25/03/2017 Ao clicar no botão de submissão, os dados são enviados para a página indicada pelo atributo action do form; Observe que a página é perdida ao clicar no botão. <form action=" <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> <input type="submit" value="Cadastrar" /> </form>

44 Resultado 25/03/2017 <form action=" <fieldset> <legend>Obrigatorio</legend> <label for="nome">Nome:</label> <input type="text" name="nome" id="nome" value="Jamanta" accesskey="n" /> </fieldset> <legend>Opcional</legend> <input type="submit" value="Cadastrar" /> </form>

45 Evoluindo o formulário

46 Caixa de senha 25/03/2017 <input type="password" name="senha"
id="senha" value="12345" />

47 Botão de rádio Apenas uma opção de cada vez;
25/03/2017 Apenas uma opção de cada vez; O atributo name agrupa os controles; Botões de rádio Permite a seleção de apenas uma opção dentro de um conjunto de opções disponíveis; Mutuamente exclusivos: quando um é selecionado os outros não podem estar selecionados; No Windows são redondos; Nomes alternativos: radio button; Cada grupo de botões de rádio tem que ter o mesmo nome (atributo name). O atributo checked indica se está selecionado. O que diferencia os botões de rádio são os atributos ID e value. Principais atributos para botões de rádio (tag <input type=“radio”>) Ver mais em: name: identificador do botão de rádio; value: valor associado a cada botão de rádio, por padrão é o valor “on” (ligado); checked: checa o botão de rádio por padrão e reflete o estado de checagem. Para um mesmo grupo de botões de rádio, apenas uma opção pode estar marcada por padrão; disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). <input type="radio" name="sexo" id="masculino" value="1" checked="checked" /> <label for="masculino">Masculino</label> name="sexo" id="feminino" value="2" /> <label for="feminino">Feminino</label>

48 Caixa de checagem Caixas de checagem Chaves do tipo ligado/desligado;
25/03/2017 Caixas de checagem Chaves do tipo ligado/desligado; Funciona como se fosse um tipo lógico (verdadeiro / falso); No Windows, são quadrados; Nomes alternativos: checkbox; O atributo checked indica se está marcado: Marcado: checked igual a true; Não marcado: checked igual a false; Em uma mesma página, as caixas de checagem podem ter o mesmo nome, mas não há agrupamento de checkbox. O que diferencia as caixas de checagem são os atributos ID e value. Principais atributos para caixas de checagem (tag <input type=“checkbox”>) Ver mais em: name: identificador da caixa de checagem; value: especifica o valor associado à checkbox quando é checada. Por padrão (se não especificar o valor do atributo), o valor é on; checked: valor que especifica se a checkbox está ou não checada por padrão. disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). <input type="checkbox" name="receberAtualizacoes" id="receberAtualizacoes" checked="checked"/> <label for="receberAtualizacoes"> Receber atualizacoes </label>

49 Diferença entre caixa de checagem e botão de rádio
Só pode uma opção de cada vez: Pode selecionar mais de uma opção: Formulários

50 Caixa de envio de arquivos
25/03/2017 Principais atributos para as caixas de texto de mais de uma linha (tag <input type=“file”>) Todos os demais atributos de textfield, com restrição no atributo value; accept: Lista de tipos de arquivos aceitos pela caixa de envio de arquivos: text/html, image/png, image/gif, video/mpeg, text/css, audio/basic; Atributo ignorado pelos navegadores atuais. <label for="foto">Foto:</label> <input type="file" id="foto" name="foto" />

51 Caixa de texto multilinha
25/03/2017 cols e rows determinam o número de colunas e linhas; <label for="observacoes">Observacoes:</label><br /> <textarea cols="30" rows="5">Digite aqui</textarea> Principais atributos para as caixas de texto de mais de uma linha (tag <textarea>) Ver: name: identificador da textarea; cols: determina o número de colunas que a checkbox vai apresentar; rows: determina o número de linhas que a checkbox apresenta; disabled: inativo, fica em cinza; readonly: somente leitura, não permite edição.

52 Caixa de listagem <select> é o container;
25/03/2017 <select> é o container; Cada opção é um <option>. Principais atributos para menus (tag <select>) <select> é o Contâiner pai de <option> e <optgroup>; Ver mais em: name: identificador do select; size: número de itens vistos pelo usuário so mesmo tempo. Se for 1, é criado um menu pull-down, se for maior, é criado um menu de rolagem. multiple: permite que o usuário selecione mais de um item do menu. disabled: inativo, fica em cinza; tabindex: posição do elemento na ordem de tabulação (tab order). accesskey: tecla de acesso ao elemento (geralmente associada ao ALT). Principais atributos para opções de menu (tag <option>) <option> define cada opção; Ver mais em: selected: permite definir quais são as opções marcadas por padrão. Semelhante ao checked do radio e do checkbox. value: valor associado ao item. Após o envio do formulário, é o value que é submetido para o cgi/php/etc; label: texto que é exibido em cada opção. Ignorado pelo Firefox; <label for="corPredileta">Cor predileta:</label> <select id="cor" name="cor"> <optgroup label="Primarias"> <option>Azul</option> <option selected="selected">Vermelho</option> </optgroup> <optgroup label="Outras"> <option>Rosa</option> <option>Salmao</option> </select>

53 Resultado 25/03/2017 <form action=" <p> <legend>Obrigatorio</legend> <fieldset> name="nome" <input type="text" <label for="nome">Nome:</label> accesskey="n" /> value="Jamanta" id="nome" </p> name="senha" <input type="password" id="senha" value="12345" /> name="sexo" id="masculino" value="1" <input type="radio" <label for="masculino">Masculino</label> checked="checked" /> <label for="feminino">Feminino</label> name="sexo" id="feminino" value="2" /> </fieldset> <legend>Opcional</legend> name="receberAtualizacoes" <input type="checkbox" <label for="receberAtualizacoes"> checked="checked"/> id="receberAtualizacoes" </label> Receber atualizacoes <input type="file" id="foto" name="foto" /> <label for="foto">Foto:</label> <textarea cols="30" rows="5">Digite aqui</textarea> <label for="observacoes">Observacoes:</label><br /> <optgroup label="Primarias"> <select id="cor" name="cor"> <label for="corPredileta">Cor predileta:</label> </optgroup> <option selected="selected">Vermelho</option> <option>Azul</option> <option>Salmao</option> <option>Rosa</option> <optgroup label="Outras"> </select> <input type="reset" value="Limpar" /> <input type="submit" value="Cadastrar" /><br /> </form>

54 Dicas para construção de formulários
1) Nunca esqueça de colocar rótulos (<label>); 2) Dê name e id para todos os elementos; 3) Respeite a diferença entre readonly e disabled; 4) Gere a ordem de tabulação (taborder) quando necessário; 5) A tecla de atalho (accesskey) é obrigatória para que seu sistema seja utilizável sem teclado. 6) O atributo title é uma ótima alternativa para exibição de uma dica visual ou para ajudar a navegação em um navegador não visual. Formulários

55 Diferença entre atributo disabled e atributo readonly
disabled: deixa o elemento desabilitado (texto em cinza). readonly: impede a edição do elemento, mas ele não fica com o texto “em cinza”. Exemplo: <input type=“text” readonly=“readonly” value=“xxx”/> <input type=“text” disabled=“disabled” value=“yyy”/> 3/25/2017 Formulários

56 Formulários em JavaScript onsubmit x onclick
25/03/2017 O evento onsubmit é chamado quando se clica no botão submit do formulário; É um evento de formulário; Útil para validações de formulário; O evento onclick é para qualquer tipo de botão; É um evento de botão; Exemplos de cada um dos casos a seguir;

57 25/03/2017

58 25/03/2017

59 Referências principais

60 Referências complementares
Firefox 2.0 and Access Keys Discussão sobre teclas de acesso no Firefox Avaliador de Acessibilidade Recomendações acessibilidade


Carregar ppt "Laboratório de Informática Formulários em HTML"

Apresentações semelhantes


Anúncios Google