J'essaie de créer une liste déroulante contenant un espace réservé. Il ne semble pas supporter placeholder="stuff"
comme le font les autres formulaires. Existe-t-il un moyen différent d'obtenir un espace réservé dans ma liste déroulante?
Oui, juste "sélectionné désactivé" dans l'option.
<select>
<option value="" selected disabled>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
Vous pouvez également voir la réponse à
Utiliser caché:
<select>
<option hidden >Display but don't show in list</option>
<option> text 1 </option>
<option> text 2 </option>
<option> text 3 </option>
</select>
dropdown ou select n'a pas d'espace réservé, car HTML ne le prend pas en charge, mais il est possible de créer le même effet pour qu'il ait le même aspect que d'autres espaces réservés.
$('select').change(function() {
if ($(this).children('option:first-child').is(':selected')) {
$(this).addClass('placeholder');
} else {
$(this).removeClass('placeholder');
}
});
.placeholder{color: grey;}
select option:first-child{color: grey; display: none;}
select option{color: #555;} // bootstrap default color
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control placeholder">
<option value="">Your Placeholder Text</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
si vous voulez voir la première option dans la liste, retirez la propriété d'affichage de css
Si vous initialisez le champ de sélection via javascript, les éléments suivants peuvent être ajoutés pour remplacer le texte de substitution par défaut
noneSelectedText: 'Insert Placeholder text'
exemple: si vous avez:
<select class='picker'></select>
dans votre javascript, vous initialisez le selectpicker comme ceci
$('.picker').selectpicker({noneSelectedText: 'Insert Placeholder text'});
Ajouter un attribut caché:
<select>
<option value="" selected disabled hidden>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
Essaye ça:
<select class="form-control" required>
<option value="" selected hidden>Select...</option>
lorsqu’il utilise required
+ value=""
, l’utilisateur ne peut pas le sélectionner utiliser hidden
le masquera de la liste des options, lorsque l’utilisateur ouvrira la boîte des options
Toutes ces options sont .... improvisations . Bootstrap offre déjà une solution pour cela . Si vous souhaitez modifier l’espace réservé pour tous vos éléments déroulants, vous pouvez modifier la valeur
noneSelectedText dans le fichier de démarrage.
Pour changer individuellement, vous pouvez utiliser le paramètre TITLE.
exemple:
<div class="form-group">
<label class="control-label col-xs-2" id="country">Continent:</label>
<div class="col-xs-9">
<select name="zones[]" class="selectpicker" title="All continents" id="zones" multiple >
<option value="Africa">Africa</option>
<option value="Asia">Asia</option>
<option value="North America">America North</option>
<option value="South America">America South</option>
<option value="Antarctica">Antarctica</option>
<option value="Australia">Australia</option>
<option value="Europe">Europe</option>
</select>
</div>
</div>
La plupart des options sont problématiques pour la sélection multiple . Attribut Place Title, et rendre la première option as data-hidden = "true"
<select class="selectpicker" title="Some placeholder text...">
<option data-hidden="true"></option>
<option>First</option>
<option>Second</option>
</select>
bootstrap-select.js
Trouvez title: null,
et supprimez-le.title="YOUR TEXT"
dans l'élément <select>
.Exemple:
<select title="Please Choose one item">
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
Essayez @title = "stuff". Cela a fonctionné pour moi.
À l’aide de bootstrap, si vous devez également ajouter des valeurs à l’option à utiliser pour les filtres ou autre chose, vous pouvez simplement ajouter la classe "bs-title-option" à l’option que vous souhaitez utiliser comme espace réservé:
<select class="form-group">
<option class="bs-title-option" value="myVal">My PlaceHolder</option>
<option>A</option>
<option>B</option>
<option>c</option>
</select>
Bootstrap ajoute cette classe à l'attribut title
.
Créer une étiquette sur la sélection
<label class="hidden-label" for="IsActive"
*ngIf="filterIsActive == undefined">Placeholder text</label>
<select class="form-control form-control-sm" type="text" name="filterIsActive"
[(ngModel)]="filterIsActive" id="IsActive">
<option value="true">true</option>
<option value="false">false</option>
</select>
et appliquer CSS pour le placer en haut
.hidden-label {
position: absolute;
margin-top: .34rem;
margin-left: .56rem;
font-style: italic;
pointer-events: none;
}
pointer-events: none
vous permet d'afficher la sélection lorsque vous cliquez sur l'étiquette, qui est masquée lorsque vous sélectionnez une option.
Pour la page .html
<select>
<option value="" selected disabled>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
pour .jsp
ou toute autre page de servlet.
<select>
<option value="" selected="true" disabled="true">Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
Je pense que la zone de liste déroulante avec une classe et le code JQuery permettant de désactiver la première option de sélection de l'utilisateur fonctionne parfaitement en tant que Place Box placeholder .
<select class="selectboxclass">
<option value="">- Please Select -</option>
<option value="IN">India</option>
<option value="US">America</option>
</select>
Faites la première option désactivée par JQuery.
<script>
$('select.selectboxclass option:first').attr('disabled', true);
</script>
Cela fera de la première option de menu déroulant un espace réservé et l’utilisateur ne pourra plus sélectionner la première option.
J'espère que ça aide!!
En utilisant Bootstrap, voici ce que vous pouvez faire. En utilisant la classe "text-hide", l'option désactivée sera affichée au début mais pas dans la liste.
<select class="form-control" >
<option selected disabled class="text-hide">Title</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
Bootstrap select a une option noneSelectedText
. Vous pouvez le définir via l'attribut data-none-selected-text
. Documentation .
Voici une autre façon de le faire
<select name="GROUPINGS[xxxxxx]" style="width: 60%;" required>
<option value="">Choose Platform</option>
<option value="iOS">iOS</option>
<option value="Android">Android</option>
<option value="Windows">Windows</option>
</select>
"Choisir la plate-forme" devient l'espace réservé et la propriété "obligatoire" garantit que l'utilisateur doit sélectionner l'une des options.
Très utile lorsque vous ne souhaitez pas utiliser de noms de champs ou d’étiquettes.