Чтобы изменить значения атрибута элементов формы, я использую javascript, который обращается к ним благодаря их атрибуту name.Именование имени компонента компонента Symfony Form и доступ к javascript
Компонент формы Symfony2.2 генерирует автоматическое имя, полученное из возвращаемого значения функции getName(), и имя, присвоенное элементу метода BuidlForm.
public function getName()
{
return 'UserAccountCreateAccount';
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstName', 'text',
В этом примере моего имя атрибут будет иметь значение UserAccountCreateAccount [FirstName]
Когда я пытаюсь это в Java:
useraccountinfoform.UserAccountCreateAccount[firstName].readOnly = true;
Java, безусловно, искажая (массив, я думаю) и не работает.
Единственное обходное решение, которое я нашел, - это вернуть пустую строку в getName(), чтобы иметь имя «firstName» в качестве имени для атрибута.
public function getName()
{
return '';
}
В JavaScript:
useraccountinfoform.firstName.readOnly = true;
затем работает.
Есть ли другой и более чистый способ справиться с этим и иметь значение атрибута имени, генерируемое Symfony, которое может быть понято javascript?
Примечание: Я попытался это:
$builder
->add('firstName', 'text',
array('attr' => array('name' => 'firstName')));
, но это не работает, так как я получил 2 атрибуты имени для того же элемента и первой только рассмотренном Java (то есть «UserAccountCreateAccount [FirstName]»)