J'ai une exigence très bizarre, dans laquelle je dois n'avoir aucune option sélectionnée par défaut dans le menu déroulant en HTML. cependant,
Je ne peux pas l'utiliser,
<select>
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
Parce que, pour cela, je devrai faire une validation pour gérer la première option. Quelqu'un peut-il m'aider à atteindre cet objectif sans vraiment inclure la première option dans le tag de sélection?
Réponses:
Ce sera peut-être utile
-- select an option --
Sera affiché par défaut. Mais si vous choisissez une option, vous ne pourrez pas la sélectionner à nouveau.Vous pouvez également le masquer à l'aide en ajoutant un vide
option
<option style="display:none">
donc il n'apparaîtra plus dans la liste.
Option 2
Si vous ne voulez pas écrire CSS et attendez le même comportement de la solution ci-dessus, utilisez simplement:
<option hidden disabled selected value> -- select an option -- </option>
la source
<option hidden disabled selected value> -- select an option -- </option>
Vous pouvez utiliser Javascript pour y parvenir. Essayez le code suivant:
HTML
JS
ou JQuery
la source
required
attribut sur l'select
élément et soumettez sans sélectionner d'option, la validation du formulaire échouera et vous le dira, vous devez faire une sélection. Par conséquent, j'aime vraiment cette approche. (Au moins testé dans Chrome)Aujourd'hui (25/02/2015)
Ceci est du HTML5 valide et envoie un blanc (pas un espace) au serveur:
Validité vérifiée sur http://validator.w3.org/check
Comportement vérifié avec Win7 (IE11 IE10 IE9 IE8 FF35 Safari5.1) Ubuntu14.10 (Chrome40, FF35) OSX_Yosemite (Safari8, Chrome40) Android (Samsung-Galaxy-S5)
Ce qui suit passe également la validation aujourd'hui , mais passe également une sorte de caractère d'espace au serveur de la plupart des navigateurs (probablement pas souhaitable) et un blanc sur les autres (Chrome40 / Linux passe un blanc):
Auparavant (2013-08-02)
Selon mes notes, l'entité insécable à l'intérieur des balises d'option ci-dessus a produit l'erreur suivante en 2013:
À ce moment-là, un espace régulier était XHTML4 valide et envoyait un blanc (pas un espace) au serveur depuis chaque navigateur:
Avenir
Cela me ferait plaisir si la spécification était mise à jour pour autoriser explicitement une option vide. Utiliser de préférence la syntaxe la plus brève. L'un ou l'autre des éléments suivants serait formidable:
Fichier de test
la source
Mettez simplement "caché" sur l'option que vous souhaitez masquer dans la liste déroulante.
la source
Solution qui fonctionne uniquement en utilisant CSS:
A: CSS en ligne
B: Feuille de style CSS
Si vous avez un fichier CSS à portée de main, vous pouvez cibler le premier en
option
utilisant:la source
Cela devrait aider:
https://www.w3schools.com/tags/att_select_required.asp
la source
Vous pouvez éviter la validation personnalisée dans ce cas.
la source
Juste une petite remarque:
certains navigateurs Safari ne semblent respecter ni l'attribut "caché" ni le paramètre de style "display: none" (testé avec Safari 12.1 sous MacOS 10.12.6). Sans texte d'espace réservé explicite, ces navigateurs affichent simplement une première ligne vide dans la liste des options. Il peut donc être utile de toujours fournir un texte explicatif pour cette entrée "factice":
Grâce à l'attribut "désactivé", il ne sera de toute façon pas sélectionné activement.
la source
Je comprends ce que vous essayez de faire, la meilleure et la plus réussie est:
la source
Je l'ai trouvé vraiment intéressant parce que je viens de vivre la même chose il n'y a pas si longtemps. Cependant, je suis tombé sur un exemple sur Internet de la solution à ce sujet.
Sans plus tarder, voir le fragment de code ci-dessous:
Avec cela, il restera non soumis mais sélectionnable, à tout moment. Plus de confort pour l'interface utilisateur et idéal pour l'expérience utilisateur.
C'est tout, j'espère que ça aide. À votre santé!
la source
Il n'y a pas de solution HTML. Selon la spécification HTML 4.01, le comportement du navigateur n'est pas défini si aucun des
option
éléments n'a l'selected
attribut, et ce que les navigateurs font en pratique, c'est qu'ils font la première option présélectionnée.Comme solution de contournement, vous pouvez remplacer l'
select
élément par un ensemble d'input type=radio
éléments (avec le mêmename
attribut). Cela crée un contrôle du même type mais avec une apparence et une interface utilisateur différentes. Si aucun desinput type=radio
éléments n'a l'checked
attribut, aucun d'entre eux n'est initialement sélectionné dans la plupart des navigateurs modernes.la source
J'utilise le framework Laravel 5 et la réponse de @Gambi a également fonctionné pour moi, mais avec quelques modifications pour mon projet.
J'ai les valeurs d'options dans une table de base de données et je les utilise avec une instruction foreach. Mais avant la déclaration, j'ai ajouté une option avec les paramètres suggérés par @Gambit et cela a fonctionné.
Voici mon exemple:
J'espère que cela aide aussi quelqu'un. Continuez votre bon travail!
la source
Essaye ça:
La première option dans la liste déroulante serait vide.
la source
Pour afficher, veuillez sélectionner une valeur dans le menu déroulant et la masquer après qu'une certaine valeur ait été sélectionnée. veuillez utiliser le code ci-dessous.
il prendra également en charge la validation requise.
la source
Si vous utilisez Angular (2+), (ou tout autre framework), vous pouvez ajouter de la logique. La logique serait: n'afficher une option vide que si l'utilisateur n'en a pas encore sélectionné d'autre. Ainsi, une fois que l'utilisateur a sélectionné une option, l'option vide disparaît.
Pour Angular (9), cela ressemblerait à ceci:
la source
Essaye ça:
Valide en HTML5. Fonctionne avec l'
required
attribut dans l'élément select. Peut être resélectionné. Fonctionne dans Google Chrome 45, Internet Explorer 11, Edge, Firefox 41.la source