16

この質問は別の質問に似ています。CSS クラスを設定するための解決策は、 FormBuilder ::add() への呼び出しの 3 番目のパラメーターに追加することでした。

->add('title', null, array('attr' => array('class'=>'span2')))

残念ながら、これは CSS ID の設定には機能しません。私がする時

->add('title', null, array('attr' => array('id'=>'title-field')))

...これは無視されます。ID は、namespace_formtype_field のようなままです。

CSS ID を設定するにはどうすればよいですか?

4

4 に答える 4

25

次のように 'attributes' 配列の外で ID を設定すると、小枝でフィールドをレンダリングするときにそれを行うことができます。

{{ form_widget(form.field, { 'id': 'my_custom_id',  'attr': { 'class' : 'my_custom_class }} )}}
于 2014-07-23T09:31:31.990 に答える
10

小枝レベルでは、これを簡単に行うことができます:

{{ form_widget(form. title, { 'id': 'title-field' }) }}

Symfony 2.3.4 でテスト済み

于 2014-05-05T18:01:22.387 に答える
4

HTML 要素は複数の ID を持つことができないため、Symfony はすでにフォーム要素で ID を使用しているため、達成しようとしていることが不可能です。

これを解決する方法は、代わりにクラスを使用するように JavaScript を変更し、

->add('title', null, array(
    'attr' => array(
        'class'=>'title-field'
    )
))

もう 1 つの方法は、JavaScript が使用する ID を Symfony のものに変更することです。

于 2013-06-12T22:37:51.353 に答える