Symfony表单组件元素命名和javascript访问

Symfony表单组件元素命名和javascript访问,javascript,symfony-forms,symfony-2.2,Javascript,Symfony Forms,Symfony 2.2,为了改变表单元素的属性值,我使用了一个javascript,通过它们的name属性来访问它们 public function getName() { return ''; } Symfony2.2的表单组件正在生成一个自动名称值,该值由getName()函数的返回值和BuildForm方法中给定给元素的名称组成 public function getName() { return 'UserAccountCreateAccount'; } public function b

为了改变表单元素的属性值,我使用了一个javascript,通过它们的name属性来访问它们

public function getName()
{
    return '';
}
Symfony2.2的表单组件正在生成一个自动名称值,该值由getName()函数的返回值和BuildForm方法中给定给元素的名称组成

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生成的name属性值可以被javascript理解

注意:我试过这个:

$builder
      ->add('firstName', 'text', 
               array('attr' => array('name' => 'firstName')));

但这不起作用,因为我为同一个元素获得了两个名称属性,而java只考虑第一个(即“UserAccountCreateCount[firstName]”)

您可以使用以下方法访问输入:

document.forms["UserAccountCreateAccount"]["UserAccountCreateAccount[firstName]"].readonly = true
顺便说一下,这是Javascript,不是Java:)