648 votes

option de sélection par défaut comme vide

J'ai une exigence très étrange, dans laquelle je dois faire en sorte qu'aucune option ne soit sélectionnée par défaut dans un 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>

Car, pour cela, je devrai faire une validation pour gérer la première option. Quelqu'un peut-il m'aider à atteindre cet objectif sans inclure la première option dans la balise select ?

3 votes

Pour autant que je sache, c'est le seul moyen d'obtenir une ligne vide. Comment ça, vous devez faire une validation ? Il suffit de définir un contrôle pour dire que si value="", il faut renvoyer false.

2 votes

Ce serait une bonne occasion d'utiliser des boutons radio au lieu d'une liste déroulante.

22 votes

Ce n'est pas une exigence bizarre du tout, à mon avis. Je suis dans le même bateau. J'ai également besoin d'une option par défaut "sans option". J'ai plusieurs listes déroulantes qui ne sont pas nécessaires pour soumettre un formulaire. En les désactivant de cette manière, j'évite que l'utilisateur ait à faire une sélection lorsqu'elle n'est pas pertinente. Bonne question ! +1

0voto

Ved Prakash Points 53

En react, vous pouvez donner une valeur fictive (disons -1) avec la balise select comme ci-dessous et la même valeur peut être utilisée avec votre option désactivée. (CELA A FONCTIONNÉ POUR MOI)

const nonEmpty = selected[identifierField] || false;

<select
    onChange={(e) => {
      onSelect(
        options.find((option) => option[identifierField] === e.target.value)
      );
    }}
    value={nonEmpty || -1}
  >
    <option disabled value={-1}>Select Option</option>
    {options.map((option) => (
      <option key={option[identifierField]} value={option[identifierField]}>
        {option[displayField]}
      </option>
    ))}
  </select>

-3voto

Tristan Bailey Points 41

Essayez ça :

<select>
    <option value="">&nbsp;
    <option>Option 1
    <option>Option 2
    <option>Option 3
</select>

Valide en HTML5. Fonctionne avec required dans l'élément sélectionné. Can être re-sélectionné. Fonctionne dans Google Chrome 45, Internet Explorer 11, Edge, Firefox 41.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X