Javascript 是否有可供选择的加载方式<;选择>;?
我使用jinja模板基于模板变量字典编译多个选择块的形式,如下所示:Javascript 是否有可供选择的加载方式<;选择>;?,javascript,html,jinja2,selectize.js,Javascript,Html,Jinja2,Selectize.js,我使用jinja模板基于模板变量字典编译多个选择块的形式,如下所示: {% for key, value in some_template_variable_dict.items %} <select id="{{ key }}_selector" name="key"> {% for item in values %} <option value="{{ item }}">{{ item }}<
{% for key, value in some_template_variable_dict.items %}
<select id="{{ key }}_selector" name="key">
{% for item in values %}
<option value="{{ item }}">{{ item }}</option>
{% endfor %}
</select>
{% endfor %}
select块没有onload事件处理程序,我无法将其放入常规$(document).ready()中;部分,因为选择块及其id-s的确切列表取决于用户选择。还有一个选项,其中一些选项需要稍微不同版本的selectize包装(例如,不允许只使用一个选定选项等),因此我也无法在每个选定项上启动它
一个有效的解决方案是在for循环中插入一个脚本标记,但我不喜欢它太乱。因为您的数据是动态生成的,所以您可以使用一个类来标记每个select选项,该类指定它的类型,如
class=“type1”
和class=“type2”
,以便以后您可以从JS端对它们执行单独的操作。或者您可以使用属性来区分它们。您可以使用document.querySelectorAll('select')
来获取所有
元素的列表,而不是使用“按id选择”。谢谢,这确实有效,而且看起来比我的解决方案要好得多。
function selectizeSingleChoice(selector) {
$('#'+selector).selectize({
sortField: 'text',
maxItems: 1,
create: false,
highlight: true,
openOnFocus: true
});
}