Symfony3 ChoiceType中的choice_attr无法设置id属性的原因是什么?

时间:2016-12-15 23:06:15

标签: symfony

我已经为我的表单创建了一个Symfony3表单类,其中包含以下ChoiceType元素:

gcc.exe

这很好用,并将class属性设置为选择值。但我想改为设置id属性。

我试过这个:

->add('deg_certs', ChoiceType::class, array(
        'mapped' => false,
        'expanded' => true,
        'multiple' => true,
        'label' => 'Degrees/Certificates received:',
        'choices' => array(
                'BA/BS' => 'ba_bs',
                'AA/AS' => 'aa_as',
                'Voc. Cert.' => 'voc_cert',
                'Other' => 'other',
        ),
        'choice_attr' => function($val){
            return ['class' => $val];
        },
))

我期待工作,但没有。

我也试过我的Twig模板:

'choice_attr' => function($val){
    return ['id' => $val];
},

但是,这也没有设置id属性。注意:以上是尝试在您不熟悉的情况下设置选项中第3项的ID。

这似乎是Symfony3代码不支持此问题的问题。任何人都可以确认吗?

我想设置id属性的原因是因为在我的Javascript中我想使用{{ form_widget(form.deg_certs[3], {'attr':{'id':'deg_other', 'onchange':'changeDegCertOther()', 'style':'float:left'}}) }} 而非getElementById(获取数组)。

1 个答案:

答案 0 :(得分:0)

我在https://github.com/symfony/symfony/issues/20965中解释了为什么会出现这种情况以及如何解决这个问题。