Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的select2 jquery仅适用于第一个表单_Javascript_Html_Django_Jquery Select2 - Fatal编程技术网

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的每个元素都通用的类会更容易。在每个表单中,该字段分配了哪些类?谢谢,我已经解决了