2010-07-27 66 views
8

是否可以在WTForms中使用HTML5中使用的一些新屬性唯一屬性?WTForms ... html,自動對焦?

例如,假設您要創建一個帶有placeholder =「foo」的TextField,必需的和自動聚焦屬性。這將如何在WTForms中完成?

在HTML中它是這樣的:<input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

注意placeholder="foo"很容易在WTForms完成。 autofocusrequired,因爲它們沒有價值,所以......就我所見,在WTForms中不支持。

WTForms可以支持嗎?

回答

22

在昨天發佈的WTForms 1.0中,HTML5緊湊語法現在是默認語法。現在你可以做(​​在神社):

{{ form.field(autofocus=true, required=true, placeholder="foo") }} 

注意,在金賈,字面是true而不是True但如果你要試試這個在Python控制檯,您將需要使用Python字面True此上班。

在使用XHTML作爲默認輸出的WTForms 0.6.x中,您可以執行如下操作:

{{ form.field(autofocus="autofocus", required="required", placeholder="foo" }} 

這是代表XHTML布爾屬性的推薦方式,而這種情況仍然是100%有效的HTML5和完全等效的,但生成的HTML是更詳細一點。

3

我是新與WTForms,但在我看來,該解決方案可以改進,而不是使用:

{{ form.field(autofocus=true, required=true, placeholder="foo") }} 

使用:

{% if field.flags.required %} 
    {{ field(autofocus=true, required=field.flags.required, placeholder="foo") }} 
{% else %} 
    {{ field(autofocus=true, placeholder="foo") }} 
{% endif %} 

WTForms似乎沒有正確處理required=false 100 %HTML5並在HTML中設置一個attr required="False"而不是刪除attr。在下一個版本的WTForms中可以改進嗎?

+1

修復attr = false行爲的修補程序剛剛合併到2.0dev中:https://github.com/wtforms/wtforms/pull/17#issuecomment-28162938 – thpani 2013-11-11 09:01:20