Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

combobox saisissable

1 réponse
Avatar
Pif
Bonjour,

quelqu'un peut-il me conseiller un composant sympa qui permette
d'afficher une liste d=E9roulante et de saisir un nouvel =E9l=E9ment si
l'utilisateur n'y trouve pas son bonheur ?

Merci.

1 réponse

Avatar
Pascal
Pif a écrit :
Bonjour,



Bonjour,

quelqu'un peut-il me conseiller un composant sympa qui permette
d'afficher une liste déroulante et de saisir un nouvel élément si
l'utilisateur n'y trouve pas son bonheur ?



Un composant, je sais pas. Il y a tellement de bibliothèques JS en tout
genre maintenant, mais souvent monstrueuses pour faire ... pas grand
chose, je trouve.

Par contre, je peux donner un tuyau à compléter soi-même pour l'ada pter.
Il s'agit d'un vieux code que j'avais mis en place pour un projet.

L'extrait du HTML :

<code>
<select name="lieu_id_type" onchange="changer_type_lieu(this)">
<!-- loop:lieu_id_type -->
<option value="{$id}" {$choix}>{$label}</option>
<!-- /loop -->
</select>
<input type="text" name="lieu_nouveau_type" value="{$lieu_nouveau_t ype}"
class="{$lieu_style_nouveau_type}" />
</code>

Le script JS qui va avec :

<code>
function changer_type_lieu( elem ) {
var champ = elem.form.lieu_nouveau_type;
if( elem.value == "0" ) {
champ.className = "champ_visible";
champ.focus();
} else {
champ.className = "champ_invisible";
champ.value = "";
}
}
</code>

Petite explication pour le HTML : je travaillais avec des templates PHP
maison, donc les noms entre accolades représentent des valeurs à
remplacer et le pseudo commentaire "loop" une boucle de valeurs. Ces
deux types d'éléments étaient générés par le script côté serveur.
Sans templates, il suffit de mettre les valeurs en dur, ça ne change
rien au comportement JS.

Autre précision, le nom de la classe de style correspondait à :
input.champ_invisible { visibility: hidden; }
input.champ_visible { visibility: visible; }


Cordialement,
Pascal