2012-10-18 77 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

相關問題