在奏鸣曲管理员中添加按钮清除 jQuery on sonata_type_collection :sonata-collection-item-added

Posted

技术标签:

【中文标题】在奏鸣曲管理员中添加按钮清除 jQuery on sonata_type_collection :sonata-collection-item-added【英文标题】:Add button in sonata admin clear jQuery on sonata_type_collection : sonata-collection-item-added 【发布时间】:2013-07-30 23:16:06 【问题描述】:

我使用奏鸣曲管理员在我的表单中实现了自动完成字段。

此表单 (ScheduleAdmin) 包含游戏集合 (GamesAdmin)。

我的问题是我不能使用 jQuery。事实上,当添加新形式的 Games 类型时,我的 jQuery 并没有启动。

但是当我编辑一个有游戏的时间表时,我的自动完成字段有效......只有第一个

编辑:

没有办法使用这个技巧:

提示:添加(sonata-collection-item-added)或删除(sonata-collection-item-deleted)行后会触发 jQuery 事件。您可以绑定到这些事件以触发导入模板的自定义 javascript(例如:将日历小部件添加到新添加的日期字段)

Source

我是 JQuery 的菜鸟,我不知道如何绑定这个元素。

有人可以帮忙吗?

谢谢!

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。

我已经用GenumFormBundle 修复了它。

使用 composer 安装它,例如:composer.json


    "require": 
        "_some_packages": "...",

        "genemu/form-bundle": "2.1.*" => for Symfony 2.1 and 2.2

        "genemu/form-bundle": "2.2.*" => for Symfony 2.3
    

不要忘记将包添加到 AppKernel.php 并运行资产命令:

$ php app/console assets:install web/

之后,您可以将其用于 Admin 类:

protected function configureFormFields(FormMapper $formMapper)
      
// ...   
    $formMapper
        ->with('General')
          ->add('sample_choice', 'genemu_jqueryautocompleter_choice', array(
                     'choices' => array(
                        'Choice 1' => 'Choice 1',
                        'Choice 2' => 'Choice 2',
                        'n.a.' => 'Not available'
                    )))

查看文档可以使用哪些自动完成字段类型。 您也可以选择实体。但请注意,只有数据库条目的 id 会在表单中返回,而不是值!

过滤方式的使用:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)

    $datagridMapper
    // ...
        ->add('customer',  null, array(), 'genemu_jqueryautocompleter_entity')
    // ...

注意:您必须在布局中添加以下行:

 form_stylesheet(form) 
and
 form_javascript(form) 

【讨论】:

感谢您的回答!我尝试使用genemuFormBundle,但它似乎不起作用......奏鸣曲和genemu有一个特定的模板配置? 嗯,我不确定,但默认情况下,如果正确加载了genemu 包,则该选项应该可用。注意:它在 ajax 弹出窗口中不起作用。加载必要的头文件或与其他 jquery 库发生冲突时似乎存在问题。 见我上面的更新。您必须在主布局树枝文件中添加 form_stylesheet(form) 和 form_javascript(form) 。 谢谢,但我不知道为什么它对我不起作用...我尝试实现选择的 jquery 库,但我不知道如何绑定:奏鸣曲-collection-item-添加。有什么想法吗? 对不起,没有任何代码很难回答。但是在您在文本字段中输入一些文本后,genemu 包是否已加载并可见。尝试在其他领域进行测试,看看它是否正常工作......

以上是关于在奏鸣曲管理员中添加按钮清除 jQuery on sonata_type_collection :sonata-collection-item-added的主要内容,如果未能解决你的问题,请参考以下文章

如何在奏鸣曲管理列表视图中添加“后备标签”

在奏鸣曲管理实体的显示模板中添加自定义表单

奏鸣曲管理员添加richhtml编辑器以阻止内容

在奏鸣曲管理员中,我们如何拥有多个级别的子管理员

如何使用奏鸣曲管理员创建自定义列表

如何为 python kivy 绘画应用程序添加清除按钮