2016-02-13 58 views
0

我试图获得HTML5前端支持的类型为“number”的输入。Symfony - 将表单类别中的HTML5输入类型“text”更改为“number”

我的形式类:

class MyType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('a', NumberType::class); // i want <input type="number" ...> 
     $builder->add('b', EmailType::class); // <input type="email" ...> works 
     $builder->add('c', TextareaType::class); 
    } 
} 

的NumberType不与产生在树枝模板的< INPUT TYPE = “号码”>标记{{形式(myForm的)}}如EMAILTYPE <输入类型= “电子邮件”>。

我找不到选项来设置所需的html属性值。 'attr'设置不会改变它。

我使用的Symfony 3.

KR 塞巴斯蒂安

回答

1

如果您想要在HTML上输入type =“number”,你应该这样做@tompte答案,但它不会呈现任何步骤属性。 如果你想渲染额外的属性,你应该添加的形式,像这样:

$builder->add('a', IntegerType::class, array('scale' => 2, 'attr' => array('step' => 0.01))); 

如果你读了number_widget块的源代码,你会看到这样的评论:

{%- block number_widget -%} 
    {# type="number" doesn't work with floats #} 
    {%- set type = type|default('text') -%} 
    {{ block('form_widget_simple') }} 
{%- endblock number_widget -%} 

所以这是为什么在使用NumberType类时它不会呈现为数字。

+0

如果你想要十进制数,它不工作。 –