Подтвердить что ты не робот

Как установить атрибут идентификатора CSS для ввода формы Symfony2

Этот вопрос похож на другой вопрос. Там решение для установки класса CSS должно было добавить его в третий параметр вызова FormBuilder:: add():

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

К сожалению, это не работает для установки идентификатора CSS. Когда я делаю

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

... это игнорируется. Идентификатор остается чем-то вроде namespace_formtype_field.

Как я могу установить идентификатор CSS, если вообще?

4b9b3361

Ответ 1

Я уверен, что нет простого ответа. Самое близкое, по-видимому, изменение разметки, используя форму. Благодарим вас за Michi.

Ответ 2

Вы можете сделать это, когда вы визуализируете свое поле в ветке, если вы устанавливаете свой id вне массива 'attributes' следующим образом:

{{ form_widget(form.field, { 'id': 'my_custom_id',  'attr': { 'class' : 'my_custom_class }} )}}

Ответ 3

На уровне твига вы можете просто сделать это:

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

Протестировано на Symfony 2.3.4

Ответ 4

Поскольку элемент HTML не может иметь несколько идентификаторов, то, что вы пытаетесь выполнить, невозможно, так как Symfony уже использует ID для элементов формы.

Способом решения этой проблемы будет изменение JavaScript для использования классов вместо этого и использование

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

Другой способ - изменить идентификатор, используемый вашим JavaScript для Symfony.