2017-01-02 5 views
0

Ich habe ein Problem, dass ich den Wert auf Click-Ereignis auswählen möchte. Ich versuchte mit Ereignis, aber ich bekomme alle Werte Komma getrennt statt aktuellen Wert.wählen Sie 2 + erhalten Wert beim Klicken

Was ich tun möchte ist, Angenommen, es gibt mehrere Optionen mit einer All Option. Wenn also ein Benutzer die Option All auswählt, sollte er alle ausgewählten Optionen löschen und nur die Option All wird angezeigt.

Ich habe unten Codes versucht

$(".chzn-select").on('select2:selecting', function() { 
    var st = ($(this).select2('val')); 
} 

es null auf den ersten Klick zeigen.

Und

$(".chzn-select").on('change', function() { 
    var st = ($(this).select2('val')); 
} 

zeigen alle Werte in Komma getrennt Format. Es gibt kein Beispiel, das ich von onclick Ereignis mit select2 JS gefunden habe. Hier ist die Liste der events

HTML

<select name="country[]" multiple="" data-placeholder="Select country" class="form-control chzn-select" required="required" id="country"> 
    <option disabled="disabled" value="1">Abu Dhabi</option> 
    <option value="2">Dubai</option> 
    <option disabled="disabled" value="3">Singapore</option> 
    <option disabled="disabled" value="4">Thailand</option> 
    <option value="8">Afghanistan</option> 
    <option value="All">All</option> 
</select> 

Hier wird die jsfiddle

+0

Haben Sie versucht: '$ (this) .val()'? – R3tep

+0

@ R3tep: Ja, es gibt auch Werte wie '2,3,4, ...' – urfusion

+0

Bitte geben Sie Ihre html – Arun

Antwort

1

https://jsfiddle.net/bayahiassem/gtew005w/11/

$(".chzn-select").select2({selectOnClose: true}).on("select2:selecting", function(evt) { 
     if(evt.params.args.data.id == 'All') { 
     $(".chzn-select").val(null).trigger("change"); 
     } else { 
     $('.chzn-select > option[value=All]').prop("selected", false); 
     } 
    }); 
+0

nicht funktioniert. Überprüfen Sie Ihren Code – urfusion

+0

Sorry wronf Geige :) hier ist der eine; https://jsfiddle.net/bayahiassem/gtew005w/7/ –

+0

wählen Sie alle dann anderes Land. Sie werden das Problem finden – urfusion

0

ich dich nicht bekommen. Wenn ich korrigiere.

$(this).select2('val').find(':selected'); 
+0

TypeError: ": ausgewählt" ist keine Funktion – urfusion

+0

$ (this) .find (': ausgewählt'); überprüfen Sie diese – NSK

+0

Wenn es andere Einträge gibt, wird es auch andere zurückgeben. – urfusion

0

Hier sind Sie. Es wird Ihnen die aktuelle ausgewählte Element geben (en) - Hold-Abfrage für eine Mehrfachauswahl

$(function() { 
 
    $(".chzn-select").on('change', function (evt) { 
 
    $('#selected').text('Selected: ' + ($(this).val())) 
 
    }) 
 
})
select { 
 
    width: 50%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="country[]" multiple="" data-placeholder="Select country" class="form-control chzn-select" required="required" id="country"> 
 
    <option disabled="disabled" value="1">Abu Dhabi</option> 
 
    <option value="2">Dubai</option> 
 
    <option disabled="disabled" value="3">Singapore</option> 
 
    <option disabled="disabled" value="4">Thailand</option> 
 
    <option value="8">Afghanistan</option> 
 
    <option value="All">All</option> 
 
</select> 
 

 
<div id="selected"></div>

+0

Ich möchte alle Optionen löschen, wenn die Option "Alle" ausgewählt ist. – urfusion

+0

Löschen oder auswählen? – motanelu

+0

Wenn die Option "Alle" ausgewählt ist, werden vorherige Einträge aus der Liste entfernt und nur die Option "Alle" angezeigt. – urfusion

0

ich diese Hoffnung arbeiten,

$(".chzn-select").select2({selectOnClose: true}); 
$(".chzn-select").on("select2:select", function (evt) { 
    if($.inArray('All',$(this).val()) != -1){ 
    $(this).val('All').trigger("change"); 
    } 
}); 

Ersetzen Sie Ihren Js-Code mit diesem, es wird funktionieren.

Hier ist jsfiddle Link für Arbeitscode.

Verwandte Themen