# Using the form template helpers Play provides several helpers for rendering form fields in HTML templates. ## Create a `
` tag The first thing is to be able to create the `` tag. It is a pretty simple helper that has no more value than automatically setting 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 You can find several input helpers in the `views.html.helper` package. You feed them with a form field, and they display the corresponding HTML input, setting the 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, unless they start with the **\_** character. Arguments starting with **\_** are reserved for field constructor arguments (we will see that shortly). ## Handling HTML input creation yourself There is also a more generic `input` helper that lets you code the desired HTML result: ``` @helper.input(myForm("username")) { (id, name, value, args) => } ``` ## Field constructors A field rendering is not only composed of the `` tag, but it also needs a `