2

I try to set value to kartik select2 in javascript action but still no luck. here is my code in view files:

<div class="col-xs-6">
    <?= $form->field($model, 'item_id')->widget(kartik\select2\Select2::className(), [
        'data' => \yii\helpers\ArrayHelper::map(\app\models\ItemProduction::find()->all(), 'id', 'name'),
        'options' => ['placeholder' => 'Select item'],
        'pluginOptions' => [
            'allowClear' => true,
        ],
    ]) ?>
</div>

and my javascript code like this

$(document).on('click', '.select-row', function(){
    // get id from custom button
    var id = $(this).attr('data-id');
    $.get('../ticket-timbangan/get-ticket', {id : id}, function(data){
            var data = $.parseJSON(data);        
            alert(data.item_id);
            $('#pengirimanproduksi-ticket_id').val(data.id);                
            $('#select2-pengirimanproduksi-item_id-container').val(data.item_id).trigger('change');

            $('#pengirimanproduksi-bruto_tbg').val(data.bruto);
            $('#pengirimanproduksi-tara_tbg').val(data.tara);
            $('#pengirimanproduksi-remark').val(data.remark);
    });
    $('#modalTicketList').modal('hide');        
});

this is I inspect kartik select2 element

<span class="select2-selection__rendered" id="select2-pengirimanproduksi-item_id-container"><span class="select2-selection__placeholder">Select item</span></span>

I try this code $('#select2-pengirimanproduksi-item_id-container').val(data.item_id).trigger('change'); but it changes nothing. Please advice. thanks.

Wilson Ng
  • 201
  • 2
  • 17

2 Answers2

2

first id for select2 is wrong.

$('#select2-pengirimanproduksi-item_id-container')

don't confuse with this and use regular one according to your view name, like mine is $('#pengirimanproduksi-item_id').val(your_value).trigger('change') should work.

just reading select2 documentation.

Wilson Ng
  • 201
  • 2
  • 17
1

you can give your own id:

  'options' => ['placeholder' => 'Select item','id' => 'your_id'],
Clara
  • 2,677
  • 4
  • 16
  • 31
vikas
  • 11
  • 1