2016-02-13 57 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

如果你想要十進制數,它不工作。 –