2012-10-18 40 views
2

的表单字段呈现而不是在Symfony2表单中,您有以下两种字段类型(其中包括):
numberhttp://symfony.com/doc/2.0/reference/forms/types/number.html
integerhttp://symfony.com/doc/2.0/reference/forms/types/integer.html为什么Symfony2为类型号为

我的问题是,为什么integer类型呈现<input type="number">number类型呈现<input type="text">从而错过了HTML5新的输入类型的属性(最小值,最大值,步骤)?

是否有一个体面和干净的方式来配置一个number表单类型来呈现一个<input type="number">标记(形式主题似乎有点脏我?)?

编辑
好像改变字段模板是唯一的选择,尽管它指出评论{# type="number" doesn't work with floats #}

回答

3

实际上,它可以为number工作过,如果他们设置属性step="any"。但是,您可以覆盖块为number -widget并将其更改为:

{% block number_widget %} 
{% spaceless %} 
    {% set type = type|default('number') %} 
    {{ block('input') }} 
{% endspaceless %} 
{% endblock number_widget %} 

检查此链接,看到默认窗体布局模板:

https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig

编辑

这只是一个疯狂的猜测,但也许他们没有设置number不会混淆用户。 当您使用英文系统时,Chrome会接受类似1.9的值。当您在德国系统上的Chrome中输入此值时,该值将立即更正为。在德国系统上,您必须键入1,9。 Chrome会在提交时将此更改为1.9。想象一下,经验丰富的无经验的用户会感到困惑。 :)

+1

正如你可能已经注意到在form_div_layout.html.twig(在你的链接提供)他们留下了一条评论'{#type =“number”不适用于浮动#} –

+0

哈哈,我已经经常看这个,并且从来没有读过这个评论。 :) – insertusernamehere

相关问题