web-dev-qa-db-fra.com

Choisi Jquery Plugin - Obtenir les valeurs sélectionnées

Comment puis-je obtenir les valeurs sélectionnées à partir de la zone de sélection multiple?

62
Aakash Shah

Comme à partir de n'importe quelle entrée régulière/sélectionnez/etc ...:

$("form.my-form .chosen-select").val()
65
Sergii
$("#select-id").chosen().val()
83
Ben Truby

Cela a fonctionné pour moi

$(".chzn-select").chosen({

     disable_search_threshold: 10

}).change(function(event){

     if(event.target == this){
        alert($(this).val());
     }

});
15
Arvind
$("#select-id").chosen().val()

c’est la bonne réponse, j’ai essayé, et la valeur transmise correspond aux valeurs séparées par ","

11
user3423551

Si quelqu'un veut obtenir uniquement la valeur sélectionnée en cliquant sur une option, il peut procéder comme suit:

$('.chosen-select').on('change', function(evt, params) {
    var selectedValue = params.selected;
    console.log(selectedValue);
});
6

À partir de 2016, vous pouvez le faire plus simplement que dans l'une des réponses déjà données:

$('#myChosenBox').val();

où "myChosenBox" est l'id de l'entrée de sélection d'origine. Ou, dans l'événement de changement:

$('#myChosenBox').on('change', function(e, params) {
    alert(e.target.value); // OR
    alert(this.value); // OR
    alert(params.selected); // also in Panagiotis Kousaris' answer
}

Dans le document Choisi , dans la section vers le bas de la page sur le déclenchement d'événements, il est écrit "Choisi déclenche un certain nombre d'événements standard et personnalisés sur le champ de sélection d'origine". L'un de ces événements standard est l'événement change. Vous pouvez donc l'utiliser de la même manière qu'avec une entrée de sélection standard. Vous n'avez pas à vous soucier d'utiliser les classes appliquées de Chosen comme sélecteurs si vous ne le souhaitez pas. (Pour l'événement change, c'est-à-dire. Les autres événements sont souvent une affaire différente.)

4
BobRodes

si vous voulez obtenir le texte d'une option sélectionnée (choisi pour afficher la valeur sélectionnée) 

 $("#select-id").chosen().find("option:selected" ).text();
1
Hoàng Vũ Tgtt

Je pense que le problème se produit lors du ciblage par ID, car Chosen copiera l’ID de la select originale sur la div nouvellement créée, vous laissant ainsi 2 éléments du même ID (maintenant non unique) sur la page actuelle.

Lorsque vous ciblez Sélectionné par ID, utilisez un sélecteur spécifique à la variable select:

$( 'select#yourID' ).on( 'change', function() {
    console.log( $( this ).val() );
} );

...au lieu de...

$( '#yourID' ).on( 'change', function() {
    console.log( $( this ).val() );
} );

Cela fonctionne car l'élément choisi renvoie les éléments sélectionnés à l'élément select d'origine (maintenant masqué), même en mode multiple.

(Il continue également de fonctionner avec ou sans choisi, disons ... si vous décidez de changer d'orientation dans votre application.)

0
John James Jacoby

Cette solution a fonctionné pour moi

var ar = [];
$('#id option:selected').each(function(index,valor){
    ar.Push(valor.value);
});
console.log(ar);

assurez-vous d'avoir vos balises <option> avec leur attribut correspondant value . J'espère que cela vous aidera.

0
Osogtulak