Question Définir l'option de sélection 'sélectionnée', par valeur


j'ai un select champ avec quelques options en elle. Maintenant, je dois choisir l'un de ceux options avec jQuery. Mais comment puis-je le faire quand je ne connais que le value du option qui doit être sélectionné?

J'ai le HTML suivant:

<div class="id_100">
  <select>
    <option value="val1">Val 1</option>
    <option value="val2">Val 2</option>
    <option value="val3">Val 3</option>
  </select>
</div>

Je dois sélectionner l'option avec la valeur val2. Comment cela peut-il être fait?

Voici une page de démonstration: http://jsfiddle.net/9Stxb/


704
2017-11-12 12:16


origine


Réponses:


Il y a un moyen plus simple qui ne vous oblige pas à entrer dans la balise d'options:

$("div.id_100 select").val("val2");

Découvrez le ceci Méthode jQuery.


1154
2018-06-07 08:49



Pour sélectionner une option avec la valeur 'val2':

$('.id_100 option[value=val2]').attr('selected','selected');

312
2017-11-12 12:17



Utilisez le change() événement après avoir sélectionné la valeur. De la docs:

Si le champ perd le focus sans que le contenu ait changé, l'événement n'est pas déclenché. Pour déclencher l'événement manuellement, appliquez .change() sans arguments:

$("#select_id").val("val2").change();

Plus d'informations sont à .changement().


191
2017-10-21 06:22



Désélectionnez tout d'abord et filtrez les options sélectionnables:

$('.id_100 option')
     .removeAttr('selected')
     .filter('[value=val1]')
         .attr('selected', true)

42
2017-11-12 12:20



<select name="contribution_status_id" id="contribution_status_id" class="form-select">
    <option value="1">Completed</option>
    <option value="2">Pending</option>
    <option value="3">Cancelled</option>
    <option value="4">Failed</option>
    <option value="5">In Progress</option>
    <option value="6">Overdue</option>
    <option value="7">Refunded</option>

Définition du statut en attente par valeur

   $('#contribution_status_id').val("2");

36
2017-12-05 17:27



Pour moi ce qui suit a fait le travail

$("div.id_100").val("val2").change();

30
2017-07-27 13:27



Je pense que la façon la plus simple est de sélectionner val (), mais vous pouvez vérifier ce qui suit. Voir Comment gérer les balises select et option dans jQuery? pour plus de détails sur les options.

$('div.id_100  option[value="val2"]').prop("selected", true);

$('id_100').val('val2');

Non optimisé, mais la logique suivante est également utile dans certains cas.

$('.id_100 option').each(function() {
    if($(this).val() == 'val2') {
        $(this).prop("selected", true);
    }
});

23
2017-09-07 22:40



Vous pouvez sélectionner n'importe quel attribut et sa valeur en utilisant le sélecteur d'attribut [attributename=optionalvalue], dans votre cas, vous pouvez sélectionner l'option et définir l'attribut sélectionné.

$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);

value est la valeur que vous souhaitez sélectionner.

Si vous devez supprimer des valeurs sélectionnées précédemment, comme cela serait le cas si vous l'utilisez plusieurs fois, vous devrez le modifier légèrement afin de supprimer d'abord l'attribut sélectionné

$("div.id_100 option:selected").prop("selected",false);
$("div.id_100 option[value=" + value + "]")
        .prop("selected",true);

15
2017-11-12 12:22



La façon la plus simple de le faire est la suivante:

HTML

<select name="dept">
   <option value="">Which department does this doctor belong to?</option>
   <option value="1">Orthopaedics</option>
   <option value="2">Pathology</option>
   <option value="3">ENT</option>
</select>

jQuery

$('select[name="dept"]').val('3');

Sortie: Ceci va s'activer ENT.


11
2017-12-02 07:23