我用的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>