2

在 Symfony2 表单中,您有以下两种来自字段类型(以及其他):: http://symfony.com/doc/2.0/reference/forms/types/number.html
numberhttp
integer : //symfony.com/doc/2.0 /reference/forms/types/integer.html

我的问题是为什么integer类型呈现<input type="number">number类型呈现<input type="text">因此缺少 HTML5 新输入类型属性(最小、最大、步长)?

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

编辑
似乎更改字段模板是唯一的选择,即使它声明了评论{# type="number" doesn't work with floats #}

4

1 回答 1

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 时,该值将立即更正为19。在德语系统上,您必须输入1,9。Chrome 将在提交时将其更改为1.9 。想象一下对于经常出差的没有经验的用户会感到困惑。:)

于 2012-10-18T23:08:43.930 回答