【发布时间】:2021-04-19 12:34:49
【问题描述】:
我正在使用Selectize.js。
在页面加载时检查 Selectized 下拉菜单中的元素时实际内容缺失(在 .selectize-dropdown-content 内):
<div class="selectize-dropdown single aritklmodel" style="display: none;">
<div class="selectize-dropdown-content"></div>
</div>
点击后会填充内容:
<div class="selectize-dropdown single aritklmodel" style="display: none; visibility: visible; width: 255.617px; top: 34px; left: 0px;">
<div class="selectize-dropdown-content">
<div style="display: block" data-marka="2" data-selectable="" data-value="a2" class="">a2</div>
<div style="display: block" data-marka="1" data-selectable="" data-value="A50">A50</div>
</div>
</div>
有没有办法在页面加载时填充它?
因为从上面可以看出,我使用自定义数据属性,我根据之前的 Selectized 下拉选择过滤选项。
当前的问题是,当我在第一个下拉列表中进行选择时,过滤器无法正常工作,因为它没有要过滤的内容,因为内容不在 DOM 中,就在我单击第二个下拉列表并且内容填充到 DOM 之后过滤在第一个更改后开始工作。
我尝试触发/模拟点击事件,它不起作用。
我已阅读 API 和使用文档,如果我错过了答案,我不明白(不是以英语为母语的人)
$('select').selectize({
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.bootstrap3.min.css" integrity="sha256-ze/OEYGcFbPRmvCnrSeKbRTtjG4vGLHXgOqsyLFTRjg=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js" integrity="sha256-+C0A5Ilqmu4QcSPxrlGpaZxJ04VjsRjKu+G82kl5UJk=" crossorigin="anonymous"></script>
<select name="cars" id="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
编辑:
有没有办法以编程方式取消选择 HTML 选择,所以我可以对 HTML 选择本身进行过滤,然后再次选择它?
有什么方法可以根据另一个选择的下拉列表进行过滤吗?使用数据属性还是其他?
【问题讨论】:
-
你能创建工作代码吗?
-
@Swati 我尝试搜索 CDN 或其他来源以在小提琴中包含 selectize,找不到它...
-
@Swati 我添加了小提琴。加载时
selectize-dropdown-content内没有选项 -
这是默认行为,因为我不确定是否有任何替代方案,如果我发现我会告诉你。
标签: javascript jquery selectize.js