在symfony2中将输入定义为提交

时间:2014-01-30 08:16:40

标签: symfony symfony-forms

如何在symfony2中将按钮类型设置为输入标记?

<input type="submit" id="id_submit" name="click to go next" class="submit"></input>

使用symfony2 formType作为      public function buildForm(FormBuilderInterface $ builder,array $ options)     {

    $builder

    ->add('submit', 'button',array('attr' => array('class'=>'submit','type'=>'input')))
    ;
}

如图所示

<button type="submit" id="ponemonSurvey_submit" name="click here to go" class="submit"></input>

2 个答案:

答案 0 :(得分:1)

如果要向表单添加按钮,可以使用inputType submit(symfony2.3及更多) Documentation

$builder->add('save', 'submit', array(
    'attr' => array('class' => 'submit'),
    'label' => "click to go next"
));

您还有resetbutton inputType。

button html标记比input标记更推荐,它更灵活(例如,您可以将图像用作按钮)。

如果你真的想要一个<input type="submit"而不是<button type="submit",你可以将你自己的inputType添加到symfony,如cookbook

中的描述

答案 1 :(得分:1)

来自Symfony 2.3等(不适用于早期版本):

$builder->add('save', 'submit', array(
                'label' => 'Click to go next',
                'attr' => array(
                    'class' => 'the_class_you_want',
                )));

“提交”按钮有一个额外的方法isClicked(),可让您检查此按钮是否用于提交表单。当表单有多个提交按钮时,这尤其有用:

if ($form->get('save')->isClicked()) {
    // ...
}

提示:您不应在name属性中添加“点击进入下一步”。此属性不旨在接收人类可读的文本。请改用'label'选项,就像我上面写的那样。

注意:您无法在FormBuilder中更改输入的css id属性。为此,您必须使用模板。