2 votes

Javascript stocke les valeurs de la liste déroulante <select> dans un tableau

Je me demande s'il est possible de stocker les valeurs sélectionnées d'un fichier <select> dans un tableau JS.

Ce que je dois finalement faire, c'est calculer les 6 valeurs les plus élevées parmi une dizaine de listes déroulantes, ce que je pense pouvoir faire en utilisant la fonction JS Math.max().

Toute aide est la bienvenue.

Voici un exemple de code :

<? while($subjects = mysql_fetch_array($query)) { ?>
<select class="points">
<optgroup label="<?=$subjects['name']?>">
  <option value="100">A1</option>
  <option value="90">A2</option>
  <option value="85">B1</option>
  <option value="80">B2</option>
  <option value="75">B3</option>
</optgroup>
</select>
<? } ?>

<script>....

1voto

Samson Points 1747

Faites quelque chose comme ceci (JQuery) :

var selected = new Array();
            $('.points option:selected').each(function() {
                selected.push($(this).val());
            });

0voto

Some Guy Points 8752
var selects = [].slice.apply(document.getElementsByTagName('select'));
selects.forEach(function (elem, i){
    var value = elem.options[elem.selectedIndex].value;
    //Do something with this value. Push it to an array, perhaps.
});

Cela suppose que tous les select sur la page doivent être inclus. Si ce n'est pas le cas, vous devez utiliser la fonction document.getElementsByClassName ou un sélecteur similaire, plus approprié, à la place.

Démo

-1voto

Alex Kalicki Points 1533

Essayez ça :

var selectValues = [];
var selectNodeList = document.getElementsByClassName("points");
for (var i = 0; i < selectNodeList.length; i++) {
    selectValues.push(selectNodeList[i].value)
}
// selectValues array now stores values of all <select> lists with class "points"

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