Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leikovsk

Problemas com validação W3C

Recommended Posts

Olá pessoal, como vai?

 

Meu problema não é um problema meu. Sério, vou explicar... me acompanhem, me acompanhem...

 

Temos uma propriedade chamada required que diz ao formulário html que aquele campo é obrigatório. Uso bastante isso num sistema aqui. Essa propriedade, ou atributo (como queiram), exige, de acordo com o W3C (e a lógica, diga-se de passagem), que o campo esteja vazio no momento em que o formulário é apresentado ao usuário. Assim ele será obrigado a preenchê-lo.

 

O problema começa quando esse formulário já trás informações do banco de dados. Tenho um form que, dentre outros campos, possui o campo "bairro". O preenchimento é obrigatório. No primeiro cadastro tudo bem, ele não trás nenhum option selecionado então o validador diz que está tudo certo. Quando eu trago dados do banco e já marco o bairro do cidadão, o validador diz: "aí, isso tá errado... em SELECT que é REQUIRED, que não seja MULTIPLE e que tenha pelo menos um OPTION, você precisa que o primeiro filho não tenha um VALUE, ou seja vazio".

 

Beleza. Fiz isso. Tentei com um option sem value e com conteúdo, depois tentei com um option sem value e sem conteúdo... e nenhuma das duas maneiras validou.

 

Tirar o REQUIRED e validar com javascript (no meu ponto de vista) não é elegante. Estou propenso a acreditar que essa restrição deve ser retirada do HTML5, mas, e vocês? O que acham? Já passaram por isso? Conseguiram uma solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, eu não sei se entendi direito o que vc disse.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <form action="">
    <select name="bairro" id="" required="required">
      <option value="">1</option>
      <option value="2" selected="selected">2</option>
      <option value="3">3</option>
    </select>

    <input type="submit" value="ok" />
  </form>

  <form action="">
    <select name="bairro" id="" required="required">
      <option value="">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>

    <input type="submit" value="ok" />
  </form>
</body>
</html>
No primeiro formulário, eu consigo enviar, pois o select está "escolhido", no segundo não, pois não tem nenhum option marcado com selected, e o primeiro é vazio.

 

Como vc fez o seu ? No caso, ao preencher o select do banco, vc pode fazer o seguinte:

 

    <select name="bairro" id="" required="required">
      <option value="">selecione</option>
      <option value="Butantã" selected="selected">Butantã</option>
    </select>
certo ?

Assim, o primeiro option tem value vazio, e vc mostra o que o usuário escolheu com o selected, então possibilitando usar o required.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.