如何在 Symfony 中自定义 select 标签的 "multiple" 属性
How to customize the "multiple" attribute of a select tag in Symfony
我正在使用 Symfony 4 和 Virtual Select,“一个 javascript 带虚拟滚动的下拉插件”。
默认情况下,当 Symfony 呈现多个 select 时,HTML 代码如下所示:
<select multiple="multiple">
然而,Virtual Select 似乎非常挑剔,并且只有在 multiple 属性没有值时才会正确运行,如下所示:
<select multiple>
(据我所知,这是“官方”语法,例如 Mozilla 没有提到 multiple="multiple"。)
有没有办法强制 Symfony 使用第二种语法而不是第一种语法?
我想到了一些行不通的解决方法:
- 我自己写整个 HTML 不切实际,因为它很长(因此是虚拟的 Select)。
- 我尝试按照 here 中的描述在 Javascript 中传递“multiple”选项,但是如果语法错误的 multiple 属性仍然存在于 HTML 中,那将无效].
- 我可以替换 Virtual Select,但我宁愿不用它,因为它已经在许多其他地方使用了。
最后我在javascript中使用了一个解决方法:
document.getElementById('select#whatever').setAttribute('multiple','');
这似乎满足虚拟Select。
(然后我不得不为 Virtual Select 和 Symfony 之间的其他问题积累更多解决方法。总而言之,您可能应该避免同时使用这两者。)
我正在使用 Symfony 4 和 Virtual Select,“一个 javascript 带虚拟滚动的下拉插件”。
默认情况下,当 Symfony 呈现多个 select 时,HTML 代码如下所示:
<select multiple="multiple">
然而,Virtual Select 似乎非常挑剔,并且只有在 multiple 属性没有值时才会正确运行,如下所示:
<select multiple>
(据我所知,这是“官方”语法,例如 Mozilla 没有提到 multiple="multiple"。)
有没有办法强制 Symfony 使用第二种语法而不是第一种语法?
我想到了一些行不通的解决方法:
- 我自己写整个 HTML 不切实际,因为它很长(因此是虚拟的 Select)。
- 我尝试按照 here 中的描述在 Javascript 中传递“multiple”选项,但是如果语法错误的 multiple 属性仍然存在于 HTML 中,那将无效].
- 我可以替换 Virtual Select,但我宁愿不用它,因为它已经在许多其他地方使用了。
最后我在javascript中使用了一个解决方法:
document.getElementById('select#whatever').setAttribute('multiple','');
这似乎满足虚拟Select。
(然后我不得不为 Virtual Select 和 Symfony 之间的其他问题积累更多解决方法。总而言之,您可能应该避免同时使用这两者。)