mpe*_*pen 18 javascript django formsets
这是我做的方式:
{{ formset.management_form }}
<table>
{% for form in formset.forms %}
{{ form }}
{% endfor %}
</table>
<a href="javascript:void(0)" id="add_form">Add Form</a>
Run Code Online (Sandbox Code Playgroud)
这是JS:
var form_count = {{formset.total_form_count}};
$('#add_form').click(function() {
form_count++;
var form = '{{formset.empty_form|escapejs}}'.replace(/__prefix__/g, form_count);
$('#forms').append(form)
$('#id_form-TOTAL_FORMS').val(form_count);
});
Run Code Online (Sandbox Code Playgroud)
特别困扰我的是我必须自己编写escapejs
模板标签.它只是删除所有换行符并转义任何单引号,这样它就不会弄乱我的字符串.但Django制造商到底希望我们在这种情况下做些什么呢?为什么他们有这个TOTAL_FORMS
隐藏的领域,当他们刚刚使用了一个数组<input name="my_form_field[0]" />
然后计算它的长度?
Django中有一些地方"之所以"是因为它是如何为Django管理应用程序实现的,我相信这是其中之一.因此答案是他们希望您实现自己的JavaScript.
看到这个问题动态添加表单...以获得更多javascript想法.
还有两个可插拔的应用程序,django-dynamic-formset和django-dinamyc-form,直到现在才查看第一个应用程序.
归档时间: |
|
查看次数: |
23903 次 |
最近记录: |