我用的Bootstrap4的ubold 框架 ,他的下拉框第一次初始化之后,再次初始化,就不在赋值了。

第一步,我审查了元素,

    下拉框是没有花里胡哨的样式的,基本上美化下拉框是根据返回的select 数据 生成一个ul li 然后把生成的元素重新赋值。

    根据我多次测试和操作,个人分析,造成第二次不绑定数据的原因是:那个初始化方法只会给未生成的元素初始样式,已有的就不会再次初始样式了。(有些框架不会,但是有些会这样)

第二步,根据原因解决(原则上来说,为达目的不择手段)

    1、可以把他写的JS找到,确定重复的去掉,但是考虑到其他关联性问题,一般情况下,还是不要改他的js

    2、在第一步基础上,既然他div是生成的,那就把他第一次生成的那块外面加个Div,把以前的select 和他初始化的全部empty(),然后在append那个select。最后,搞定   0.0

下面是简易的代码

  

 <div id="select_clear">
    <select required data-plugin="customselect" name="type" id="type">
         <option value="" selected>请选择</option>
    </select>
<div>

<script>
    $("#select_clear").empty(); //清空所有html
    var type0_html = ' <select required data-plugin="customselect" name="type" id="type"></select>';
     $("#select_clear").append(type0_html);//再次添加原有的select
     $("<option selected></option>").val("").text("请选择").appendTo($("#" + selectID));
    $('[data-plugin="customselect"]').niceSelect();//再次初始化select(这个是我用的框架的初始化方式)
</script>

  

02-11 00:06