在 symfony 中添加 CollectionType 表单时如何维护 Javascript 功能

How to mantain Javascript functionality when adding CollectionType forms in symfony

我用 symfonyCollectionType 字段制作了一个 form,以添加嵌入式两个相关实体的表单。

一切正常,但嵌入表单中的某些字段是 dateType 字段,我想使用 datepicker javascript我select他们的时候打电话。

完成所有工作后,我发现 日期选择器弹出窗口 不起作用,这是有道理的,因为表单已通过 javascript 加载。 但是,我该怎么做才能让它们正常工作?

NOTE: I do not write any code, since I have followed the standard procedure proposed by symfony.com documentation. But will be happy to post it here on request.

您需要在 javascript 代码中初始化新的日期输入字段(在其中向集合添加新行)。这是一个示例,因为您没有 post 任何代码。

function addFormToCollection($collectionHolderClass) {
    var $collectionHolder = $('.' + $collectionHolderClass);

    var prototype = $collectionHolder.data('prototype');

    var index = $collectionHolder.data('index');

    var newForm = prototype;
    
    newForm = newForm.replace(/__name__/g, index);

    $collectionHolder.data('index', index + 1);

    var $newFormLi = $('<li></li>').append(newForm);
    $collectionHolder.append($newFormLi);

    // initialize new DateTime fields
    var $newRow = $collectionHolder..children().last();
    $newRow.children('.dateTime').each(function(){
        initializeDatePicker($(this));
    });
}