2017-03-14 13 views
0

いくつかのフォームオプションを表示するために選択2ボックスを使用しています。データは、ajaxリクエストから来て、select2にオプションを追加しています。問題は、ドロップダウンリストに表示されているオプションを追加するが、選択できないということです。2オプションを選択できません選択可能

ここに私が使用しているコードがあります。

$('#vehiclegroup-vehiclegroup_clientid').on('change', 
    $('#vehiclegroup-vehiclegroup_clientid'),function(){ 

    var clientType = $('#vehiclegroup-vehiclegroup_clienttype').val(); 
    var company = $('#vehiclegroup-vehiclegroup_clientid').val(); 
    $.ajax({ 

     divId: divids[1], 
     url: "index.php?r=vehiclegroup/getvehiclegroups", 
     data: {'company': company , 'clientType': clientType}, 
     method: 'GET', 
     success: populateUser 

    }) 
}); 

私は別の同じページにSELECT2ボックスとその作業罰金のために同じ機能を使用していますpopulateUser関数のコード

function populateUser(data) 
    { 


    $(this.divId).empty(); 

    var newUser; 
    var userList = data['list']; 

    for (var client in userList) 
    { 
    newUser = "<option value=" + client + ">" + 
     userList[client] + "</option>"; 

    $(this.divId).append(newUser); 


    } 
} 

編集:

<?= $form->field($model, 'vehiclegroup_parentid')->widget(Select2::classname(), 
     [ 
      'data' => [], 
      'language' => 'en', 
      'options' => ['placeholder' => 'Select SubGroup Name'], 
      'pluginOptions' => ['allowClear' => true], 
     ] 
    )->label('SubGroup'); ?> 
+0

ここで、.select2()プラグインを初期化していますが、ここで同じものを投稿できますか? – user7417866

+0

私はYiiウィジェットクラスを表示しています。 – khan

+0

ok、クイックチェック、初期化が選択されているかどうかを確認してください。ajax not be be – user7417866

答えて

0

私はこの問題を解決しました。私は最初のオプションを選択することができませんでした、私は他のオプションを選択する必要があった、そしてそれは選択可能になった。私は少し調べました。オプションを追加した後でも変更をトリガーする必要があるからです。

$(this.divId).select2().trigger('change'); 
0

は、あなたのAJAXリクエストがその前にいないが完了した後、あなたのSELECT2の初期化

<?= $form->field($model, 'vehiclegroup_parentid')->widget(Select2::classname(), 
    [ 
     'data' => [], 
     'language' => 'en', 
     'options' => ['placeholder' => 'Select SubGroup Name'], 
     'pluginOptions' => ['allowClear' => true], 
    ] 
)->label('SubGroup'); ?> 

があることを確認し、次のように

マイセレクト2の初期化コードがあります。 select2がselect2に追加する前にselect2が初期化されるため、後で追加されるオプションがselect2で認識されません。

関連する問題