我继承了一个Symfony2项目,该项目具有如此构建的表单:
$builder
->add('Status', 'choice', array(
'choices' => array('' => '', 'PASS' => 'PASS', 'FAIL' => 'FAIL', 'INCOMPLETE' => 'INCOMPLETE', 'DROPPED' => 'DROPPED',),
'required' => FALSE,
))
->add('First_Name', 'text', array('label'=>'First Name',
'required' => FALSE))
->add('Last_Name', 'text', array('label'=>'Last Name',
'required' => FALSE))
->add('PID', 'text', array('label'=>'License Number',
'required' => FALSE))
;
我需要在PID字段中输入任何字母以强制为大写。但是,我找不到选项/属性/ ...来执行此操作。
有没有办法做到这一点?
答案 0 :(得分:2)
如果你使用bootstrap,这应该有效:
$builder
->add('Status', 'choice', array( 'choices' => array('' => '', 'PASS' => 'PASS', 'FAIL' => 'FAIL', 'INCOMPLETE' => 'INCOMPLETE', 'DROPPED' => 'DROPPED',),
'required' => FALSE,
'attr' => array( 'class' => 'text-uppercase' ),
))
答案 1 :(得分:1)
我不确定您是否要求服务器端验证或帮助客户端大写输入。如果是后者:您可以向PID元素添加CSS类或data-*
属性(类似->add('PID', 'text', ['label'=>'License Number', 'required' => FALSE, 'attr' => ['data-behavior' => 'uppercase']])
)。然后,您可以在表单中添加JavaScript事件处理程序(最好使用jQuery或其他一些框架),以便在模糊/更改时自动将小写字母转换为大写字母。 (我更喜欢data-*
属性,因为这与CSS无关。)
要在服务器端强制执行此操作,您可以使用@Assert\Regex
注释。