Comment puis-je vérifier si un utilisateur a sélectionné quelque chose dans un <select>
champ en HTML5?
Je vois <select>
ne prend pas en charge le nouvel required
attribut ... dois-je alors utiliser JavaScript? Ou y a-t-il quelque chose qui me manque? : /
selectedIndex
.Réponses:
Obligatoire : avoir la première valeur vide - travaux requis sur les valeurs vides
Prérequis : corriger le DOCTYPE html5 et un champ de saisie nommé
Selon la documentation (la liste et le gras sont les miens)
la source
L'
<select>
élément prend en charge l'required
attribut, selon la spécification:Quel navigateur n'honore pas cela?
(Bien sûr, vous devez quand même valider sur le serveur, car vous ne pouvez pas garantir que les utilisateurs auront activé JavaScript.)
la source
Vous pouvez utiliser l'
selected
attribut de l'élément option pour sélectionner un choix par défaut. Vous pouvez utiliser l'required
attribut de l'élément select pour vous assurer que l'utilisateur sélectionne quelque chose.En Javascript, vous pouvez vérifier la
selectedIndex
propriété pour obtenir l'index de l'option sélectionnée, ou vous pouvez vérifier lavalue
propriété pour obtenir la valeur de l'option sélectionnée.Selon la spécification HTML5,
selectedIndex
"renvoie l'index du premier élément sélectionné, le cas échéant, ou −1 s'il n'y a pas d'élément sélectionné. Etvalue
" renvoie la valeur du premier élément sélectionné, le cas échéant, ou la chaîne vide s'il y a aucun élément sélectionné. "Donc, si selectedIndex = -1, alors vous savez qu'ils n'ont rien sélectionné.la source
-1
. Désolé, je n'ai pas précisé dans les commentaires en premier.Oui, ça marche:
vous devez laisser la première option vide.
la source
la source
vous devez d'abord attribuer une valeur vide dans la première option. c.-à-d. Sélectionnez ici.que seul requis fonctionnera.
la source
Rendre la valeur du premier élément de la zone de sélection vide.
Ainsi, lorsque vous postez le FORMULAIRE, vous obtenez une valeur vide et en utilisant cette méthode, vous saurez que l'utilisateur n'a rien sélectionné dans la liste déroulante.
la source
Vous devez définir l'
value
attribut deoption
sur la chaîne vide:select
retournera levalue
fichier sélectionnéoption
au serveur lorsque l'utilisateur appuierasubmit
surform
. Un videvalue
est identique à unetext
entrée vide -> élever lerequired
message.w3schools
la source
essayez ça, ça va marcher, j'ai essayé ça et ça marche.
la source
Fonctionne parfaitement bien si la valeur de la première option est nulle. Explication: Le HTML5 lira une valeur nulle lors de la soumission du bouton. Si non nul (attribut de valeur), la valeur sélectionnée est supposée ne pas être nulle, la validation aurait donc fonctionné, c'est-à-dire en vérifiant s'il y avait des données dans la balise d'option. Par conséquent, il ne produira pas la méthode de validation. Cependant, je suppose que l'autre côté devient clair, si l'attribut value est défini sur null, c'est-à-dire (valeur = ""), HTML5 détectera une valeur vide sur la première ou plutôt l'option sélectionnée par défaut, donnant ainsi le message de validation. Merci d'avoir posé la question. Heureux d'aider. Heureux de savoir si je l'ai fait.
la source
En html5, vous pouvez faire en utilisant l'expression complète:
Je ne sais pas pourquoi la courte expression ne fonctionne pas, mais essayez celle-ci. Cela résoudra.
la source
Essaye ça
la source
Vous pouvez aussi le faire dynamiquement avec JQuery
Ensemble requis
Supprimer requis
la source