Como posso verificar se um usuário selecionou algo de um <select>
campo no HTML5?
Vejo <select>
que não suporta o novo required
atributo ... tenho que usar JavaScript então? Ou há algo que estou perdendo? : /
javascript
html
select
required
Matt
fonte
fonte
selectedIndex
.Respostas:
Obrigatório : mantenha o primeiro valor vazio - trabalhos necessários em valores vazios
Pré - requisitos : DOCTYPE html5 correto e um campo de entrada nomeado
Conforme a documentação (a lista e o negrito são meus)
fonte
O
<select>
elemento suporta orequired
atributo, conforme a especificação:Qual navegador não respeita isso?
(É claro que você precisa validar no servidor de qualquer maneira, pois não pode garantir que os usuários tenham o JavaScript ativado.)
fonte
Você pode usar o
selected
atributo para o elemento option para selecionar uma opção por padrão. Você pode usar orequired
atributo para o elemento select para garantir que o usuário selecione algo.Em Javascript, você pode verificar a
selectedIndex
propriedade para obter o índice da opção selecionada ou verificar avalue
propriedade 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 um item selecionado. Evalue
" retorna o valor do primeiro item selecionado, se houver, ou a sequência vazia, se houver nenhum item selecionado. "Então, se selectedIndex = -1, você sabe que eles não selecionaram nada.fonte
-1
. Desculpe, eu não esclareço nos comentários primeiro.Sim, está funcionando:
você deve manter a primeira opção em branco.
fonte
fonte
primeiro você deve atribuir um valor em branco na primeira opção. ou seja, selecione aqui. o necessário apenas funcionará.
fonte
Coloque o valor do primeiro item da caixa de seleção em branco.
Então, quando você publica o FORM, obtém um valor em branco e, dessa maneira, você saberia que o usuário não selecionou nada no menu suspenso.
fonte
Você precisa definir o
value
atributo deoption
para a sequência vazia:select
irá retornar ovalue
do selecionadooption
para o servidor quando o usuário pressionasubmit
noform
. Um vaziovalue
é igual a umatext
entrada vazia -> aumentando arequired
mensagem.w3schools
fonte
tente isso, isso vai funcionar, eu tentei isso e isso funciona.
fonte
Funciona perfeitamente se o valor da primeira opção for nulo. Explicação: O HTML5 lerá um valor nulo no envio do botão. Se não for nulo (atributo value), presume-se que o valor selecionado não seja nulo; portanto, a validação teria funcionado, ou seja, verificando se há dados na tag de opção. Portanto, não produzirá o método de validação. No entanto, acho que o outro lado fica claro, se o atributo value estiver definido como null, ou seja, (value = ""), o HTML5 detectará um valor vazio na primeira ou melhor, na opção selecionada padrão, fornecendo a mensagem de validação. Obrigado por perguntar. Feliz por ajudar. Fico feliz em saber se eu fiz.
fonte
No html5, você pode usar a expressão completa:
Não sei por que a expressão curta não funciona, mas tente esta. Isso vai resolver.
fonte
Tente isto
fonte
Você também pode fazer isso dinamicamente com o JQuery
Definir obrigatório
Remover necessário
fonte