选择2选项不可选

时间:2017-03-14 11:25:16

标签: javascript jquery select2

我正在使用select 2框来显示一些表单选项。数据来自ajax请求,我将选项附加到select2。问题是,当我附加选项时,我会在下拉列表中看到它们,但无法选择它们。

这是我正在使用的代码。

    $('#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

    })
}); 

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);


   }
}

我在同一页面上的另一个select2框使用相同的功能,并且工作正常。

编辑:

我的Select 2初始化代码如下

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

2 个答案:

答案 0 :(得分:0)

确保你的select2初始化

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

是在你的ajax请求完成之前完成的。你的问题是你的select2在你选择select2之前初始化,因此select2将无法识别你以后添加的选项。

答案 1 :(得分:0)

我解决了这个问题。我无法选择第一个选项,首先我需要选择任何其他选项,然后它变得可选。我搜索了一下,这是因为即使在附加选项后你也需要触发更改。

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