今天帮忙改 bug 才知道 select2 这个插件
官方文档基本用法是这样的:
<select class="js-example-basic-single" name="state">
<option value="AL">阿拉巴马州</option>
...
<option value="WY">怀俄明州</option>
</select>
//在Javascript中(external.js资源或<script>标记)
$(document).ready(function() {
$('.js-example-basic-single').select2();
});
需求
下拉框1和下拉框2联动,下拉框1选完后,下拉框2 的数据改变然后可以选择
问题
下拉框1 选完后,ajax 把下拉框2的数据弄进去了,然后 select2() 重新初始化,但是下拉框2还是禁用状态。
看官方文档基本用法 $dom.select2()
这个写法应该是可以选择的,而不是禁用状态。听开发描述在其他版本这么写是没有问题的。
后面搜了好久,没找到解决办法,直接摆烂了…
在 $dom.select2()
前面加了$dom.attr("disabled", false)
就能用了。
刚开始的时候加了$dom.attr("disabled", false)
,把$dom.select2()
注释了…后面出来的效果就是原始 select,看着就不对。后面误打误撞把那个注释去掉,就看着正常了。
emmm…但是原则上这个写法是对的吗
解决
// 解决办法
$('.js-example-basic-single').attr("disabled", false); // 手动解除禁用状态
$('.js-example-basic-single').select2();