Как запустить jQuery с параметром, выбранным из раскрывающегося списка Select2?

Я использую Select2 для стиля раскрывающегося списка. Затем параметры выводятся как

<option value="001,100">Option 001</option>
<option value="002,200">Option 002</option>
<option value="003,300">Option 003</option>

Что я хочу сделать, так это то, что когда кто-то щелкает один из вариантов, запускается действие jQuery loadMap(coords). Таким образом, если кто-то выберет первый вариант, он должен сработать loadMap(001,100).

Как бы я этого добился? Документы по адресу https://select2.github.io/examples.html говорят следующее:

«select2: select срабатывает всякий раз, когда выбирается результат».

var $eventLog = $(".js-event-log");
var $eventSelect = $(".js-example-events");
$eventSelect.on("select2:select", function (e) { log("select2:select", e); });

Но как мне заставить это запустить действие jQuery?

Это моя разметка:

<div class="form-group">
<select class="map form-control" name="map"></select>
</div>

<script>
$( document ).ready(function() {

$( ".map" ).select2({        
    ajax: {
        url: "https://www.url.com/query_maps.php",
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                q: params.term
            };
        },
        processResults: function (data) {
            // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to
            // alter the remote JSON data
            return {
                results: data
            };
        },
        cache: true
    },
    minimumInputLength: 2,
    placeholder: "Select your map"
});

});
</script>

person Mark M.    schedule 29.12.2016    source источник


Ответы (1)


$("#map").select2();

$("#map").on('change', function(){
    var selected = $(this).val();
    loadMap(selected);
});

function loadMap(val){  
  alert("You have selected "+val);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.min.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.2/select2.css" rel="stylesheet"/>

<select id="map" class="map" style="width:300px">
   <option value="-- Select Your option --">-- Select Your option --</option>
   <option value="001,100">Option 001</option>
   <option value="002,200">Option 002</option>
   <option value="003,300">Option 003</option>
</select>

Вы ищете что-то подобное? ?

person Punit Gajjar    schedule 29.12.2016