# Form template helpers Play provides several helpers to help you render form fields in HTML templates. ## Creating a `
` tag The first helper creates the `` tag. It is a pretty simple helper that automatically sets the `action` and `method` tag parameters according to the reverse route you pass in: ``` @helper.form(action = routes.Application.submit()) { } ``` You can also pass an extra set of parameters that will be added to the generated HTML: ``` @helper.form(action = routes.Application.submit(), 'id -> "myForm") { } ``` ## Rendering an `` element There are several input helpers in the `views.html.helper` package. You feed them with a form field, and they display the corresponding HTML form control, with a populated value, constraints and errors: ``` @(myForm: Form[User]) @helper.form(action = routes.Application.submit()) { @helper.inputText(myForm("username")) @helper.inputPassword(myForm("password")) } ``` As for the `form` helper, you can specify an extra set of parameters that will be added to the generated HTML: ``` @helper.inputText(myForm("username"), 'id -> "username", 'size -> 30) ``` > **Note:** All extra parameters will be added to the generated HTML, except for ones whose name starts with the `_` character. Arguments starting with an underscore are reserved for field constructor argument (which we will see later). ## Handling HTML input creation yourself There is also a more generic `input` helper that let you code the desired HTML result: ``` @helper.input(myForm("username")) { (id, name, value, args) => } ``` ## Field constructors A rendered field does not only consist of an `` tag, but may also need a `