Posso aplicar o atributo obrigatório aos campos no HTML5?

Como posso verificar se um usuário selecionou algo de um campo no HTML5?

Eu vejo que não suporta o novo atributo required … eu tenho que usar JavaScript então? Ou há algo que estou perdendo? : /

Obrigatório : ter o primeiro valor vazio – trabalhos obrigatórios em valores vazios

Prérequisitos : correto DOCTYPE html5 e um campo de input nomeado

  

Conforme a documentação (a listview e negrito é minha)

O atributo obrigatório é um atributo booleano.
Quando especificado, o usuário será solicitado a selecionar um valor antes de enviar o formulário.

Se um elemento de seleção

  • tem um atributo obrigatório especificado,
  • não tem um atributo múltiplo especificado,
  • e tem um tamanho de exibição de 1 (não tem SIZE = 2 ou mais – omite se não for necessário);
  • e se o valor do primeiro elemento de opção na lista de opções do elemento de seleção (se houver) for a string vazia (ou seja, presente como value="" ),
  • e esse nó pai do elemento de opção é o elemento select (e não um elemento optgroup),

então essa opção é a opção de label de espaço reservado do elemento select.

O elemento suporta o atributo required , conforme a especificação:

Qual navegador não honra isso?

(Claro, você tem que validar no servidor de qualquer maneira, já que você não pode garantir que os usuários terão o JavaScript habilitado.)

Você pode usar o atributo selected para o elemento option para selecionar uma opção por padrão. Você pode usar o atributo required para o elemento select para garantir que o usuário selecione algo.

Em Javascript, você pode verificar a propriedade selectedIndex para obter o índice da opção selecionada ou pode verificar a propriedade value para obter o valor da opção selecionada.

De acordo com a especificação HTML5, selectedIndex “retorna o índice do primeiro item selecionado, se houver, ou −1 se não houver nenhum item selecionado. E o value ” retorna o valor do primeiro item selecionado, se houver, ou a string vazia se não há nenhum item selecionado. “Então, se selectedIndex = -1, então você sabe que eles não selecionaram nada.

   

Sim, está funcionando

  

você tem que manter a primeira opção em branco.

Primeiro você tem que atribuir valor em branco na primeira opção. ou seja, selecione aqui que apenas o necessário irá funcionar.

 

Torne o valor do primeiro item da checkbox de seleção em branco.

Então, quando você postar o FORM, você obtém o valor em branco e, dessa forma, você sabe que o usuário não selecionou nada do menu suspenso.

  

Você precisa definir o atributo value da option para a string vazia:

  

select retornará o value da option selecionada para o servidor quando o usuário pressiona o submit no form . Um value vazio é o mesmo que uma input de text vazia -> aumentando a mensagem required .


w3schools

O atributo value especifica o valor a ser enviado para um servidor quando um formulário é enviado.

Exemplo

tente isso, isso vai funcionar, eu tentei isso e isso funciona.

 < !DOCTYPE html>   

Em html5 você pode fazer usando a expressão completa:

  

Eu não sei porque a expressão curta não funciona, mas tente esta. Isso vai resolver.

Tente isso

  

Você também pode fazer isso dinamicamente com o JQuery

Definir necessário

 $("#select1").attr('required', 'required'); 

Remover requerido

 $("#select1").removeAttr('required');