Select2 多层次赋值时异步赋值的问题

场景:

  当选择人员时加载人员,选择部门时加载部门.所以在人员下,选择人员A后,如果选择部门,会触发二级select 重新获取数据.

问题:

 使用select2()方法进行绑定远程数据后,对第二个select2进行绑定赋值存在问题

 1.如果选择同步时,第一个select2在赋值成功前,标签会卡在那里,直到数据加载完后才可以看到隐藏效果.

 

2.如果选择异步,同时赋值,会导致第二个赋值再被第一个change事件后清空值,因为二级select重新获取数据尚未结束.

 

 

解决方案:

       使用异步处理请求,防止出现同步时下拉框Loading,体验差的情况.

     1.存储二级select的值

     2.添加回调参数(默认可不填),在change执行成功后,调用回调函数赋值.

   

    

function callback(r) {
    console.log(r);
    if ($("#hidDataCode").val().length > 0) {
        $("#selDataCode").val($("#hidDataCode").val()).trigger("change");
        $("#hidDataCode").val("");
    }
}

 

posted @ 2017-08-28 16:29  静思长远  阅读(879)  评论(0编辑  收藏  举报