简体   繁体   English

如何在jquery select2中获取项目

[英]how to get item within jquery select2

I want to take the value (flight_no) that is in the processResults function, so when I select the airline name the code from the airlines name must be filled with (flight_no) 我想获取processResults函数中的值(flight_no),因此当我选择航空公司名称时,必须使用(flight_no)填充航空公司名称中的代码

I have tried to get (flight_no) that is in the processResults function, but which I only get (airline_id) 我试图获取processResults函数中的(flight_no),但是我只能获取(airline_id)

$('#airlines').select2({
        allowClear: true,
        placeholder: 'Select Airlines',
        ajax: {
            dataType: 'json',
            type: 'POST',
            delay: 250,
            url: '{{route('search-airlines')}}',
            data:function(param){
                return{
                    airlines:param.term
                }
            },
            processResults: function(data, param){
                return {
                    results: data.map(function(item){
                        return { id: item.airlines_id,text: item.airlines_name, slug: item.flight_no} 
                    })
                }
            }
        }
    });

    $('#codeAirline').click(function () {
        $('#output').text($('#airlines').val());
    });


<div class="col-12 clearfix">
    <label for=""><p class="mb-0">Airlines</p></label>
    <select id="airlines" name="airlines" style="width: 100%;max-height: 100%; background-color: #e8e4e473;" required>
            <option value="">Select airlines</option>
    </select>
</div>
<div class="col-4">
    <div class="form-group">
        <select class="form-control" id="codeAirline" style="background-color:#dcdcdc;">
            <option id="output"></option>
        </select>
    </div>
</div>

My json 我的json

{
    "DATA": [
        {
            "airlines_id": 1,
            "airlines_name": "Garuda Airlines",
            "status": "1",
            "flight_no": "GA"
        },
        {
            "airlines_id": 3,
            "airlines_name": "Sriwijaya Airlines",
            "status": "1",
            "flight_no": "SJ,SA"
        },
        {
            "airlines_id": 4,
            "airlines_name": "Susi Airlines",
            "status": "1",
            "flight_no": "SI"
        },
        {
            "airlines_id": 5,
            "airlines_name": "Multi Airlines",
            "status": "1",
            "flight_no": "MA,MU,MAS"
        },
   ]
}

Add change event to your select element with id airlines . change事件添加到具有id airlines select元素中。 When the value is selected, get the selected airlines_id and find within the array, then assign the found flight_no to the select element with id codeAirline . 选择该值后,获取选定的airlines_id并在数组中查找,然后将找到的flight_no分配给ID为codeAirline的select元素。

 const input = { "DATA": [{ "airlines_id": 1, "airlines_name": "Garuda Airlines", "status": "1", "flight_no": "GA" }, { "airlines_id": 3, "airlines_name": "Sriwijaya Airlines", "status": "1", "flight_no": "SJ,SA" }, { "airlines_id": 4, "airlines_name": "Susi Airlines", "status": "1", "flight_no": "SI" }, { "airlines_id": 5, "airlines_name": "Multi Airlines", "status": "1", "flight_no": "MA,MU,MAS" }, ] }; const airlinesDropdown = $('#airlines'); const flightNum = $('#codeAirline'); input["DATA"].forEach(({ airlines_id, airlines_name, flight_no }) => { airlinesDropdown.append(`<option value="${airlines_id}">${airlines_name}</option>`); flightNum.append(`<option value="${flight_no}">${flight_no}</option>`); }); $('#airlines').on('change', function() { const selectedAirline = $(this).val(); const { flight_no } = input["DATA"].find(({ airlines_id }) => airlines_id == +selectedAirline); console.log(flight_no); flightNum.val(flight_no); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="col-4"> <select id="airlines" name="airlines" style="width: 100%;max-height: 100%; background-color: #e8e4e473;" required> <option value="">Select airlines</option> </select> </div> <br> <div class="col-4"> <select class="form-control" id="codeAirline" style="background-color:#dcdcdc;"> <option value="">Select</option> </select> </div> 

您是否有返回json外观的示例?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM