Symfony表单组件元素命名和javascript访问
为了改变表单元素的属性值,我使用了一个javascript,通过它们的name属性来访问它们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
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:)