Jquery 在实现symfony表单集合示例时,表单不会嵌入原型,以防一次呈现整个表单

Jquery 在实现symfony表单集合示例时,表单不会嵌入原型,以防一次呈现整个表单,jquery,symfony,prototypejs,Jquery,Symfony,Prototypejs,我试着按照页面上的例子。我试图在文章形式中嵌入作者形式 我的ArticleType(表单类)如下所示: $builder /.../ ->add('authors', CollectionType::class, [ 'entry_type' => AuthorType::class, 'entry_options' => ['label' => false], 'allow_add' =>

我试着按照页面上的例子。我试图在文章形式中嵌入作者形式

我的ArticleType(表单类)如下所示:

 $builder
/.../
            ->add('authors', CollectionType::class, [
            'entry_type' => AuthorType::class,
            'entry_options' => ['label' => false], 'allow_add' => true])
这将导致下面截短的吼声中列出的HTML代码

我还添加了一个jQuery,试图遵循这个示例。不幸的是,这似乎不起作用。作者表单未嵌入到文章表单中

似乎
$collectionHolder=$('ul.authors')无效,因为没有html标记。相反,原型代码位于

文档中对此进行了详细描述:

如果您同时呈现整个“标记”子窗体(例如。 form_row(form.tags)),则原型将在上自动可用 外部div作为数据原型属性,与您看到的类似 上面

但是仍然我不确定如何修改代码使其工作

<form name="article" method="post" novalidate="novalidate"><legend class="col-form-label required">Authors</legend><div id="article_authors" data-prototype="&lt;fieldset class=&quot;form-group&quot;&gt;&lt;div id=&quot;article_authors___name__&quot;&gt;&lt;div class=&quot;form-group&quot;&gt;&lt;label for=&quot;article_authors___name___firstName&quot; class=&quot;required&quot;&gt;First name&lt;/label&gt;&lt;input type=&quot;text&quot; id=&quot;article_authors___name___firstName&quot; name=&quot;article[authors][__name__][firstName]&quot; required=&quot;required&quot; class=&quot;form-control&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;form-group&quot;&gt;&lt;label for=&quot;article_authors___name___surname&quot; class=&quot;required&quot;&gt;Surname&lt;/label&gt;&lt;input type=&quot;text&quot; id=&quot;article_authors___name___surname&quot; name=&quot;article[authors][__name__][surname]&quot; required=&quot;required&quot; class=&quot;form-control&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/fieldset&gt;"></div><div class="form-group"><label class="" for="article_issue">Issue</label><select id="article_issue" name="article[issue]" class="form-control"><option value=""></option><option value="1">KPSE_12019</option><option value="2">KPSET1-1</option><option value="3">Wyd22019</option></select></div><div class="form-group"><button type="submit" id="article_save" name="article[save]" class="btn-primary btn">Zapisz</button></div><input type="hidden" id="article__token" name="article[_token]" value="CbZ7q9gSQKkG9RlxRlcMv6Tt_4ocsJTD5Mgo08xRjPQ" /></div>
</form>
AuthorsIssueKPSE_12019KPSET1-1Wyd22019Zapisz
var$collectionHolder;
//设置“添加标签”链接
var$addAuthorButton=$('Dodaj autora');
变量$newLinkLi=$('
  • ).append($addAuthorButton); jQuery(文档).ready(函数(){ //获取保存作者集合的ul $collectionHolder=$('ul.authors'); //将“添加作者”锚和li添加到标签ul $collectionHolder.append($newLinkLi); //计算我们当前的表单输入(例如2),将其用作新的表单输入 //插入新项目时的索引(例如2) $collectionHolder.data('index',$collectionHolder.find(':input').length); $addAuthorButton.on('click',函数(e){ //添加新的标记表单(请参见下一个代码块) addAuthorForm($collectionHolder,$newLinkLi); }); }); 函数addAuthorForm($collectionHolder,$newLinkLi){ //获取前面解释的数据原型 var prototype=$collectionHolder.data('prototype'); //获取新索引 var索引=$collectionHolder.data('index'); var newForm=原型; //只有在TaskType的标记字段中未设置'label'=>false时,才需要此选项 //将原型HTML中的“\uuuuu name\uuuuuu label\uuuuuuuuuuuu”替换为 //取而代之的是一个基于我们拥有多少物品的数字 //newForm=newForm.replace(/\u名称\u标签\u标签/g,索引); //将原型HTML中的“\uuuu name\uuuuuu”替换为 //取而代之的是一个基于我们拥有多少物品的数字 newForm=newForm.replace(/\u\u name\u\u/g,索引); //为下一项增加索引1 $collectionHolder.data('index',index+1); //在“添加标签”链接li之前,在页面中的一个li中显示表单 变量$newFormLi=$('
  • ')。追加(newForm); $newLinkLi.before($newFormLi); }
    
    名称plName enSummary PLEnsummary关键字PLEn发布日期
    年
    月
    白天
    年月日至年月日1234567891011213141516171819202122232425262728293031201420152001520017201820192020202202202202220232024状态图submitedeceptedpublishedauthorsissuekpse12019kpse1-1wyd2019zapisz
    
    更改

    $collectionHolder = $('ul.authors');
    
    为了

    那你知道吗

    改变

    $collectionHolder = $('ul.authors');
    
    为了

    那你知道吗

    var$collectionHolder;
    //设置“添加标签”链接
    var$addAuthorButton=$('Dodaj autora');
    var$newLinkLi=$('').append($addAuthorButton);
    jQuery(文档).ready(函数(){
    //获取保存作者集合的ul
    $collectionHolder=$('div#article_authors');
    //将“添加作者”锚和li添加到标签ul
    $collectionHolder.append($newLinkLi);
    //计算我们当前的表单输入(例如2),将其用作新的表单输入
    //插入新项目时的索引(例如2)
    $collectionHolder.data('index',$collectionHolder.find(':input').length);
    $addAuthorButton.on('click',函数(e){
    //添加新的标记表单(请参见下一个代码块)
    addAuthorForm($collectionHolder,$newLinkLi);
    });
    });
    函数addAuthorForm($collectionHolder,$newLinkLi){
    //获取前面解释的数据原型
    var prototype=$collectionHolder.data('prototype');
    //获取新索引
    var索引=$collectionHolder.data('index');
    var newForm=原型;
    //只有在TaskType的标记字段中未设置'label'=>false时,才需要此选项
    //将原型HTML中的“\uuuuu name\uuuuuu label\uuuuuuuuuuuu”替换为
    //取而代之的是一个基于我们拥有多少物品的数字
    newForm=newForm.replace(/\u\u name\u\u/g,索引);
    //为下一项增加索引1
    $collectionHolder.data('index',index+1);
    //在“添加标签”链接li之前,在页面中的一个li中显示表单
    变量$newFormLi=$('
  • ')。追加(newForm); $newLinkLi.before($newFormLi); }
    li*{
    显示:内联块;
    利润率:0.10px;
    }
    
    作者
    发布PSE12019KPSET1-1Wyd22019Zapisz
    
    var$collectionHolder;
    //设置“添加标签”链接
    var$addAuthorButton=$('Dodaj autora');
    var$newLinkLi=$('').append($addAuthorButton);
    jQuery(文档).ready(函数(){
    //获取保存作者集合的ul
    $collectionHolder=$('div#article_authors');
    //将“添加作者”锚和li添加到标签ul
    $collectionHolder.append($newLinkLi);
    //计算我们当前的表单输入(例如2),将其用作新的表单输入
    //插入新项目时的索引(例如2)
    $collectionHolder.data('index',$collectionHolder.find(':input').length);
    $addAuthorButton.on('click',函数(e){
    //添加新的标记表单(请参见下一个代码块)
    addAuthorForm($collectionHolder,$newLinkLi);
    });
    });
    函数addAuthorForm($collectionHolder,$newLinkLi){
    //获取前面解释的数据原型
    var prototype=$collectionHolder.data('prototype');
    //得到