531 votes

Comment puis-je définir par programmation la valeur d'un élément de boîte de sélection en utilisant javascript?

J’ai l’élément select HTML suivant :

À l’aide d’une fonction javascript avec le numéro de code de congé en tant que paramètre, comment choisir l’option appropriée dans la liste ?

662voto

Mitchel Sellers Points 38352
function SelectElement(valueToSelect)
{    
    var element = document.getElementById('leaveCode');
    element.value = valueToSelect;
}

141voto

einar Points 939

Si vous utilisez jQuery, vous pouvez aussi le faire

 $("#leaveCode").val("14");
 

Cela sélectionnera l'option avec la valeur de 14

30voto

Andrew Hedges Points 11496
function setSelectValue (id, val) {
    document.getElementById(id).value = val;
}
setSelectValue('leaveCode', 14);

16voto

Toskan Points 1231

J'ai comparé les différentes méthodes:

Comparaison de différentes façons sur la façon de définir une valeur d'un select avec JS ou jQuery

code:

$(function() {
    var oldT = new Date().getTime();
     var element = document.getElementById('myId');
    element.value = 4;
    console.error(new Date().getTime() - oldT);


    oldT = new Date().getTime();
    $("#myId option").filter(function() {
        return $(this).attr('value') == 4;
    }).attr('selected', true);
    console.error(new Date().getTime() - oldT);


    oldT = new Date().getTime();
    $("#myId").val("4");
    console.error(new Date().getTime() - oldT);


});

Sortie sur un select avec ~4000 éléments:

1 ms

58 ms

612 ms

Avec Firefox 10. Remarque: La seule raison pour laquelle j'ai fait ce test, parce que jQuery effectué super mal sur notre liste avec ~2000 entrées (ils avaient des textes plus longs entre les options). Nous avions à peu près 2 s temporisation après un val()

Note: je suis à la valeur de réglage selon la valeur réelle, et non pas la valeur de texte

13voto

William Points 4403
 document.getElementById('leaveCode').value = '10';
 

Cela devrait définir la sélection à "Congé annuel"

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