Javascript 我的select2 jquery仅适用于第一个表单
我想使用Javascript 我的select2 jquery仅适用于第一个表单,javascript,html,django,jquery-select2,Javascript,Html,Django,Jquery Select2,我想使用select2.min.js自动完成选择(ForeignKey值),但它只适用于我的第一个表单,我使用django formset来复制表单 这是我的片段 {items.forms%中的项的%s} {{item.price}添加_类:'col-12'} {{item.quantity}添加_类:'col-12'} {{item.model | add|u class:'col-12 0模型'| attr:'id:model'} {%endfor%} $(函数(){ $('.tb1 t
select2.min.js
自动完成选择(ForeignKey值),但它只适用于我的第一个表单,我使用django formset来复制表单
这是我的片段
{items.forms%中的项的%s}
{{item.price}添加_类:'col-12'}
{{item.quantity}添加_类:'col-12'}
{{item.model | add|u class:'col-12 0模型'| attr:'id:model'}
{%endfor%}
$(函数(){
$('.tb1 tr:last').formset({
前缀:“{items.prefix}}”,
addText:“添加”,
deleteText:“删除”,
addCssClass:'btn btn success',
});
})
$(文档).ready(函数(){
$(“#模型”)。选择2()
})
首先,我想了解更多信息,例如如何定义表单集。我也不清楚你想在这里做什么。请粘贴更多数据
我建议您考虑使用django-select2模块,它对处理django中的select2内容有很大帮助
我也不知道你所说的“如何设置表单的数量”是什么意思,也许你希望在for/endfor循环中包含一些可以用{{forloop}}
完成的递增计数器
请粘贴更多内容,回答会更好。您必须重新初始化(如下:
$(“#模型”)。select2();
)当其他页面出现时,为它们选择select2。用于初始化select2\model
的选择器用于元素ID,对于DOM中的每个元素,它都应该是唯一的
在大多数浏览器中,效果是只识别元素id的第一个实例,而忽略其余实例,就好像它们不存在一样
在本例中,您希望使用类选择器:.model
。这将确保为所有具有类“model”的元素初始化select2。因此,初始化select2的代码是:
$(文档).ready(函数(){
$(“.model”)。选择2()
})
您应该需要使用不同的ID分别初始化
例如:
<script type="text/javascript">
$(document).ready(function(){
$("#id_1").select2();
$("#id_2").select2();
})
</script>
$(文档).ready(函数(){
$(“#id_1”)。选择2();
$(“#id_2”)。选择2();
})
我在我的子表单中使用了inlineformset(父、子、表单,extra=1),我有foreignkey选择的下拉列表,因为第一个表单select2工作得很好,谢谢你的建议,我将尝试它。除了django-select2之外,我还建议检查django dynamic formset,它允许向内联表单集动态添加行。但是,请注意,当前代码存在一些问题,因此请检查此分叉:您能否共享由模板引擎解析的循环部分中的html的外观?这可能有助于弄清问题所在。您可以从Chrome/Firefox中的DevTools或“查看页面源代码”选项(如果您右键单击页面上的任意位置)获得。这没有问题,但它提供了名为(id_sitems_set-0-model)的默认id,对于第二个子表单(id_sitems_set-1-model),也许我应该设置一个计数器,并且该类仍然作为第一个表单,您可以这样做,但我仍然认为,使用一个对要使用select2的每个元素都通用的类会更容易。在每个表单中,该字段分配了哪些类?谢谢,我已经解决了