it-swarm.com.de

Gewähltes Jquery Plugin - ausgewählte Werte abrufen

Wie kann ich die ausgewählten Werte aus der ausgewählten Mehrfachauswahlbox erhalten?

62
Aakash Shah

Wie bei jeder regulären Eingabe/Auswahl/etc ...:

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

Das hat bei mir funktioniert

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

     disable_search_threshold: 10

}).change(function(event){

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

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

das ist die richtige Antwort, ich habe es versucht, und der übergebene Wert sind die durch "," getrennten Werte

11
user3423551

Wenn jeder Benutzer nur den ausgewählten Wert erhalten möchte, kann er Folgendes tun:

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

Ab 2016 können Sie dies einfacher als in jeder der bereits gegebenen Antworten tun:

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

dabei ist "myChosenBox" die ID der ursprünglichen Auswahleingabe. Oder beim Änderungsereignis:

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

In dem ausgewählten Dokument im Abschnitt am unteren Rand der Seite zum Auslösen von Ereignissen heißt es: "Ausgewählt löst eine Reihe von Standard- und benutzerdefinierten Ereignissen im ursprünglichen Auswahlfeld aus." Eines dieser Standardereignisse ist das Änderungsereignis. Sie können es also auf dieselbe Weise verwenden, wie Sie es mit einem Standard-Select-Eingang tun würden. Sie müssen sich nicht damit beschäftigen, die angewählten Klassen von Chosen als Selektoren zu verwenden, wenn Sie dies nicht möchten. (Das heißt für das change-Ereignis. Andere Ereignisse sind oft eine andere Angelegenheit.)

4
BobRodes

wenn Sie Text einer ausgewählten Option erhalten möchten (ausgewählt, um den ausgewählten Wert anzuzeigen) 

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

Ich glaube, das Problem tritt auf, wenn das Targeting nach ID erfolgt, da Chosen die ID von der ursprünglichen select auf die neu erstellte div kopiert, so dass auf der aktuellen Seite 2 Elemente derselben (jetzt nicht eindeutigen) ID verbleiben.

Verwenden Sie beim Targeting "Ausgewählt nach ID" einen für select spezifischen Selektor:

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

...anstatt...

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

Dies funktioniert, weil Chosen die ausgewählten Elemente auch im Multimodus auf das ursprüngliche (jetzt ausgeblendete) select-Element spiegelt.

(Es funktioniert auch weiterhin mit oder ohne Chosen, sagen Sie ... wenn Sie sich entscheiden, in Ihrer Anwendung eine andere Richtung einzuschlagen.)

0

Diese Lösung hat für mich funktioniert

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

vergewissern Sie sich, dass Ihre <option>-Tags das entsprechende value-Attribut haben.

0
Osogtulak