【问题标题】:Select 2 option not Selectable选择 2 选项不可选择
【发布时间】:2017-03-14 21:06:53
【问题描述】:

我正在使用选择 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'); ?>

【问题讨论】:

  • 你在哪里初始化 .select2() 插件,你能在这里发布同样的内容吗?
  • 我在视图中使用 Yii 小部件类。
  • 好的,快速检查,检查你是否在 ajax 之后初始化 select 2
  • 是的,ajax 请求是在 select2 初始化之后。

标签: javascript jquery select2


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    确保你的 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 将无法识别您稍后添加的选项。

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 2012-03-12
      • 2017-05-23
      相关资源
      最近更新 更多