通过ajax调用更新选择字段时未选择Select2

问题描述

在选择选项中使用 select2 类时遇到问题。当我通过 ajax 调用使用字段 select2 类插入表单数据时,它工作正常

但是当我通过 ajax 首先调用相同的表单来更新 select2 字段时,它不是我首先插入的选定值。

注意

ajax 响应工作正常

cdn、css 和 javascript 正确集成

我在下面试过

输入字段

<div class="form-group">
    <label for="inputEmail3" class="col-sm-5 control-label">Status:</label>
    <div class="col-sm-7">
        <select class="form-control select2" name="status_user" id="status_user" style="width:100%;">
            <option value="">-Select-</option>
            <option value="1">Active</option>
            <option value="0">Inactive</option>
         </select>
    </div>
</div>

Javascript

$(document).ready( function () {

    $('.select2').select2()

} );

Ajax 更新

$('#status_user').val('');

$.ajax({

        type:"post",url:"./cc/xyz.php",data: {
            row_id:                 action_id,conditional_value:      14
        },success:function(response){

            var responseData =  JSON.parse(response);
            $('#status_user').val(responseData.status_user);
            
        }
    });

解决方法

几天前我遇到了同样的问题。我已经从 Select2 Documentation

解决了这个问题
$('#status_user').val('');

替换成这个

var statusSelect = $('#status_user');

并在您的 ajax 请求中添加新行

$('#status_user').val(responseData.status_user);
statusSelect.append(responseData.status_user).trigger('change'); // Add this line

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...