Duplicate possible:
jQuery/Sélection par programme d'une option dans la liste déroulante
Je me demandais s'il est possible de sélectionner une option dans une zone de sélection/une liste déroulante directement à partir de jQuery. Par exemple, je veux sélectionner l’option avec la valeur 5 dans une sélection avec des valeurs comprises entre 1 et 10.
La seule solution à laquelle je puisse penser est de supprimer toutes les options et de les recréer avec la bonne valeur sélectionnée, mais c'est un peu inefficace.
Traitez simplement la zone de sélection comme vous le feriez avec tout autre élément d’entrée:
$("#MySelectBox").val("5");
Vous pouvez le faire en ajoutant l'attribut selected
dans la balise <option>
.
$(document).ready(function () {
$('#btn2').click(function(){
$('#sel1 option[value=2]').attr('selected','selected');
});
$('#btn3').click(function(){
$('#sel1 option[value=3]').attr('selected','selected');
});
$('#btn5').click(function(){
$('#sel1 option[value=5]').attr('selected','selected');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
<select id="sel1">
<option value='1'>Option 1</option>
<option value='2'>Option 2</option>
<option value='3'>Option 3</option>
<option value='4'>Option 4</option>
<option value='5'>Option 5</option>
<option value='6'>Option 6</option>
<option value='7'>Option 7</option>
<option value='8'>Option 8</option>
<option value='9'>Option 9</option>
</select>
<input id="btn2" type=button value='Select 2' />
<input id="btn3" type=button value='Select 3' />
<input id="btn5" type=button value='Select 5' />
Bien sûr vous pouvez
Utilisez simplement ce code pour sélectionner l'option 5:
$("#ComboBox").val(5);
Tout ce que vous avez à faire est de définir l'attribut selected
à true
ou selected
.
var arrayOfOptions = $('#mySelect option') //will return an array of options in the order they are found
Il suffit de parcourir sur eux, quelque chose comme:
for(var i=0; i<arrayOfOptions.length; i++) {
var opt = arrayOfOptions[i];
//feel free to check the index of i here if you want to set
//a particular index to selected or a range.
//similarly the range can be passed in as a function parameter.
$(opt).attr('selected','selected');
}
Si je vous ai bien compris, vous souhaitez sélectionner l’option avec la valeur = 5 et la marquer comme sélectionnée. Si oui, cela devrait être ça:
$("#selectBox[value='5']").attr('selected', 'selected');
Cela devrait également fonctionner:
$("#selectBox").attr('value', 5).attr('selected', 'selected');