向我的表单集添加新的内联时,我的日期选择器停止工作

Posted

技术标签:

【中文标题】向我的表单集添加新的内联时,我的日期选择器停止工作【英文标题】:when adding a new inline to my formset, my datepickers stop working 【发布时间】:2011-10-06 20:07:09 【问题描述】:

今天有点奇怪。

我有一个非常基本的项目。一个表单并添加到我有一个内联表单。这是给作者的书。

当表单加载(/authors/create/)时,我有一个作者姓名,在下面我有一个表单,我可以在其中向该作者添加书籍。

为了能够拥有动态内联(能够在表单上添加或删除),我使用http://code.google.com/p/django-dynamic-formset/。

我现在的问题是,当我添加新的内联时,内联表单的所有日期选择器(用于发布日期的字段)都停止工作。

I have attached my sample project showing exactly what is wrong. You can download and run it here.

为什么以及如何解决这个问题?

【问题讨论】:

抱歉,不打算下载您的 zip。但是当你说日期选择器停止工作时,你是指现有的,还是刚刚添加的新的? 加载时呈现的日期字段似乎没问题。然后当我添加一个新行时,内联表单集中的所有日期选择器都会退出窗口,即使是最初工作的那些。但是与不同表单或表单集关联的日期选择器继续工作。只是作为该内联表单集中断的一部分的日期选择器。 老实说,使用 Django 1.3 和 Safari 5.1 (7534.48.3) 似乎工作得很好。 我不断收到:No module named books_authors_inlines.urls,我错过了什么吗? 【参考方案1】:

我确信有更清洁和更聪明的方法可以做到这一点。但是工作的概念证明:

function renewDatePickers() 
    $('.datepicker').datepicker('destroy');
    $(".datepicker").datepicker(dateFormat: 'yy-mm-dd');


$(renewDatePickers);

$(function() 
    $('.form-row.inline. book_form.prefix ').formset(
        prefix: ' book_form.prefix ',
        added: renewDatePickers // Event -- read inline docs
    );
)

并将您的 JS 代码从 base.html 转移到 author_form.html

【讨论】:

谢谢。在每次添加内联时重新初始化日期选择器是非常聪明的。我也在 remove 事件中做到了,现在效果很好。

以上是关于向我的表单集添加新的内联时,我的日期选择器停止工作的主要内容,如果未能解决你的问题,请参考以下文章

动态表单 Zebra Datepicker 的事件侦听器

单元测试 django 内联表单集

内联表单集只保存最后一个表单

插入日期选择器后 Jquery 表单验证不起作用

yii 框架 - 当我在表单中启用 ClientValidation 时,jquery datepicker 不起作用

用户同时编辑时,Django 内联表单集抛出 IndexError