Symfony Forms EntityType 使用 JS 全选

Posted

技术标签:

【中文标题】Symfony Forms EntityType 使用 JS 全选【英文标题】:Symfony Forms EntityType Select All using JS 【发布时间】:2021-08-09 18:45:11 【问题描述】:

在我的网页上,我正在使用带有 EntityType 类的 Symfony 表单。我想创建一个额外的按钮,单击时从该下拉列表中选择所有项目。这可能使用 javascript / JQuery 吗?简单地更改自动生成的 html 是行不通的。

FormType.php

->add('item', EntityType::class, [
   'class' => Item::class,
   'choice_label' => function(Item $item) 
      return sprintf('%s', $item->getName());
    ,
    'label' => 'Staff',
    'multiple' => true,

【问题讨论】:

【参考方案1】:

我认为这样的事情可以解决问题:

<!-- Somewhere in your Twig file : -->
<button id="check-all-options">Check all !</button>
document.querySelector('#check-all-options').addEventListener('click', () => 
  // Select all the options of your <select> tag
  const options = document.querySelectorAll('#form_item option');

  // Loop on all the options and pass them to selected ✅
  options.forEach(option => option.selected = true);
);

如果有帮助请告诉我:)

【讨论】:

以上是关于Symfony Forms EntityType 使用 JS 全选的主要内容,如果未能解决你的问题,请参考以下文章

Symfony - 使用重复的 EntityType 优化表单

预填充 EntityType 类型的 Symfony 表单的字段

选中 Symfony 表单 EntityType 复选框

Symfony 表单 - EntityType 通过实体 ID 选择选项

如何使用 EntityType 字段对 Symfony 4 表单进行单元测试

Symfony sonata EntityType 编辑表单 - 选择 - 获取其他当前