Effacer la sélection d'un select multiple [HTML/JavaScript] - HTML/CSS - Programmation
Marsh Posté le 25-05-2007 à 17:22:45
personne n'a d'idée ?
Marsh Posté le 26-05-2007 à 12:35:24
Faut utiliser les id, pas les name. Et donc passer par document.getElementById pour accéder aux propriétés de ton select
Marsh Posté le 26-05-2007 à 12:38:49
gooopil a écrit : Faut utiliser les id, pas les name. Et donc passer par document.getElementById pour accéder aux propriétés de ton select |
ah oui ? je vais aller voir ça de plus près
ça marche comment, en gros ?
Marsh Posté le 26-05-2007 à 15:21:05
Voici un exemple que j'ai testé et qui marche :
<html> |
La petite subtilité à connaître, c'est que lorsqu'une option est supprimée de la liste, madame Javascript réorganise toute la liste, et il faut donc repartir du début pour supprimer l'option suivante.
Marsh Posté le 26-05-2007 à 15:25:52
ah ok merci
mais en fait j'ai dû mal m'exprimer : je voulais juste effacer la sélection (le surlignage) pas l'élément lui-mêm ^^
mais ça me donne une base de travail
Marsh Posté le 26-05-2007 à 17:01:15
olivthill a écrit : Voici un exemple que j'ai testé et qui marche :
|
Mais quel est cette horreur
Marsh Posté le 26-05-2007 à 17:04:03
gatsu35 a écrit : Mais quel est cette horreur |
Marsh Posté le 26-05-2007 à 17:10:53
olivthill a écrit : La petite subtilité à connaître, c'est que lorsqu'une option est supprimée de la liste, madame Javascript réorganise toute la liste, et il faut donc repartir du début pour supprimer l'option suivante. |
Il faut savoir qu'une nodeList (ce qu'est select.options) est dynamique. Donc si tu supprime l'élément n de la liste, alors l'élément n+1 prend la place de l'élément n, n+2 prend la place de n+1....
Et au lieu de reparcourir stupidement le tableau, tu fais un simple i-- et basta, bien sur il faut que ton for contient cette règle : i<options.length (sachant que options.length est récupéré à chaque itération de la boucle for).
et accessoirement les <option> ca se ferme putain, je m'en fous qu'on soit en HTML 4 ou 3, le HTML a été trop gentil pour laisser de telles stupidités.
et autrement voila un code propre :
Code :
|
Marsh Posté le 26-05-2007 à 17:48:04
merci encore mais le problème est le même qu'avec le code de olivthill
ça supprime l'élément en même temps que la sélection...
moi ce que je cherche à faire, c'est supprimer seulement la surbrillance
(ce que ferait un reset, sauf que je veux le faire seulement sur cette sélection multiple là et avec un checkbox)
Marsh Posté le 26-05-2007 à 21:34:42
sire de Botcor a écrit : merci encore mais le problème est le même qu'avec le code de olivthill |
Donc tu veux désélectionner les éléments qui sont sélectionnés dans le select ?
ben tu reprends ma fonction :
et tu modifie 2 lignes :
<script type="text/javascript">
function removeSelectOpt(selId) {
var sel = document.getElementById(selId);
for (var i=0; i<sel.options.length; i++) {
var opt = sel.options[i].selected = "";
}
}
</script>
Marsh Posté le 26-05-2007 à 23:43:32
super !! exactement ce que je voulais !
Marsh Posté le 25-05-2007 à 16:52:44
Salut !
Je cherche quelque chose que je croyais tout simple mais en fait non
je veux effacer (en cochant une checkbox) ce qui est sélectionné dans un <select multiple>
voici mon code :
<input type="checkbox" name="CASE_SITUATION_FAMILLE" value="1" onChange="LISTEM_SITUATION_FAMILLE[].value='';">
Situation de famille
<select multiple name="LISTEM_SITUATION_FAMILLE[]" size="3" onChange="CASE_SITUATION_FAMILLE.checked=true;">
<option value="0">Inconnu</option>
<option value="1">Célibataire</option>
<option value="2">Marié</option>
</select>
Vous auriez une idée ?
Message édité par sire de Botcor le 25-05-2007 à 17:28:46
---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron