Sélection automatique liste

cs_nicojet Messages postés 7 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 30 mars 2007 - 29 mars 2007 à 09:12
cs_nicojet Messages postés 7 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 30 mars 2007 - 30 mars 2007 à 09:41
Salut à tous,

Existe t'il une fonction JS permettant de sélectionner l'élément d'une liste en fonction de sa valeur et non pas de son positionnement dans la liste ?

Exemple :

<select size="1" name="monCombo">
<option value="Choix_1">Choix 1</option>
<option selected value="Choix_2"> Choix 2</option>
<option value="Choix_3">Choix 3</option>
</select>
</form>

Pour qu'il me sélectionne le 2e choix, mon script est le suivant :

document.getElementById('monCombo').selectedIndex = 2;

Moi je souhaiterais le sélectionner en indiquant Choix_2 et non pas 2

Merci d'éclairer ma lanterne !

2 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
29 mars 2007 à 10:26
Bonjour, j'avais écris il y a fort longtemps un traitement pour faire cela, en espérant que cela réponde à tes attentes

/**
* Fonction de selection d'une option par raport à l'attribut value d'une option
*
* @param optionValue
*                    Valeur à selectionnée.
* @param selectId
*                    Select dans lequel rechercher
*
*/
function selectByName(optionValue, selectId){
    // Récupère le select
    var myCombo = document.getElementById(selectId);
    // liste des options
    var childOptions = myCombo.getElementsByTagName("OPTION");
    // indicateur de trouvé.
    var found = false;
    // parcours la liste des options
    for ( var i = 0; i < childOptions.length; i++){
        // si la valeur de l'option est identique à la valeur recherchée, selectionne la liste.
        if ( childOptions[i].value == optionValue){
            // Selection
            myCombo.selectedIndex = i;
            // indique que la valeur à été trouvée.
            found = true;
            // arrête les traitements.
           
            break;
        }
    }
    // si pas trouvé alors affiche un message.
    if ( ! found ){
        alert ("la valeur " + optionValue + " n'est pas présente dans le select ayant pour id " + selectId );
    }
}

[o-_-o]
0
cs_nicojet Messages postés 7 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 09:41
J'ai réussi à me débrouiller avec les numéros dans la liste.
Merci pour ton script que je vais garder précieusement, j'en aurai surement besoin dans un proche avenir...
0
Rejoignez-nous