Metronome
HTML

HTML

HTML Input Form Attributes

HTML’s <input> element offers several form-related attributes that allow you to fine-tune how inputs connect to forms, where they submit data, and how that data is handled. This tutorial covers each attribute in detail, with clear explanations and practical examples.

Learning Outcomes

By the end of this tutorial, you will be able to:

  • Associate inputs with forms located elsewhere on the page using the form attribute.
  • Override form submission targets and methods with formaction, formmethod, and formtarget.
  • Specify custom encoding for form data using formenctype.
  • Conditionally disable validation on specific submit actions with formnovalidate and on entire forms with novalidate.
  • Differentiate between GET and POST submission flows and choose the appropriate method for various use cases.
  • Implement advanced form workflows, such as multiple submission endpoints and dynamic response targets, to build flexible user interfaces.

The form Attribute

The form attribute associates an <input> element with a <form> by referencing the form’s id. This lets you place inputs outside the <form> tag while still including them in form submissions.

How it works:

  • The value must match the id of an existing <form>.
  • Inputs outside the form container can still contribute data when the form is submitted.

Example:

<form id="user-form" action="/submit" method="post">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username">
  <button type="submit">Send</button>
</form>

<!-- This input is outside the <form> but still submits with it -->
<label for="email">Email:</label>
<input type="email" id="email" name="email" form="user-form">

Additional nuances:

  • Ideal for page layouts where form fields need to appear in different sections.
  • Browser support is robust in modern browsers; ensure the form’s id is unique on the page.

The formaction Attribute

formaction overrides the <form> element’s action URL for a specific <input> (only valid on type="submit" or type="image").

Key points:

  • Allows multiple submission endpoints from one form.
  • Useful when you need different processing routes (e.g., save as draft vs. publish).

Example:

<form action="/save" method="post">
  <input type="text" name="content">
  <input type="submit" value="Save">
  <input type="submit" formaction="/publish" value="Publish">
</form>

Output:

Additional nuances:

  • Works only on <input type="submit"> and <input type="image">.
  • If the value is an empty string, the submission reverts to the <form>'s action.

The formenctype Attribute

formenctype specifies how form data is encoded before sending (only for method="post"). It overrides the <form>’s enctype.

Common values:

  • application/x-www-form-urlencoded (default)
  • multipart/form-data (for file uploads)
  • text/plain

Example:

<form action="/upload" method="post">
  <input type="file" name="avatar">
  <!-- Override default encoding for this submit -->
  <input type="submit" formenctype="multipart/form-data" value="Upload Avatar">
</form>

Output:

Additional nuances:

  • Only matters for method="post" submissions.
  • Ensure the server is configured to handle the specified encoding.

The formmethod Attribute

formmethod overrides the <form>’s method (GET or POST) for a particular submission button.

GET vs. POST:

  • GET: Appends data to URL, bookmarkable, limited length, not secure for sensitive data.
  • POST: Sends data in request body, not bookmarkable, no size limits, more secure.

Example:

<form action="/search">
  <input type="text" name="q">
  <input type="submit" value="Search">
  <input type="submit" formmethod="post" value="Advanced Search">
</form>

Output:

Additional nuances:

  • Only valid on type="submit" and type="image".
  • Use POST for larger payloads or sensitive information.

The formtarget Attribute

formtarget overrides the <form>’s target, controlling where the response appears.

Typical values:

  • _self (default)
  • _blank (new tab/window)
  • A named <iframe> or window

Example:

<form action="/download">
  <input type="submit" value="Download">
  <input type="submit" formtarget="_blank" value="Download in New Tab">
</form>

Output:

Additional nuances:

  • Only valid on type="submit" and type="image".
  • Combine with name to load responses into specific iframes for dynamic UIs.

The formnovalidate Attribute

formnovalidate disables built-in validation for a specific submit button, overriding <form novalidate>.

When to use:

  • Skip validation for actions like "Save Draft" where incomplete data is acceptable.

Example:

<form action="/signup" method="post">
  <input type="email" name="email" required>
  <input type="submit" value="Sign Up">
  <input type="submit" formnovalidate value="Save Draft">
</form>

Output:

Additional nuances:

  • Only applies to buttons (submit types).
  • User agents will not block submission even if required fields are empty.

The novalidate Attribute

novalidate on the <form> tag skips validation for all inputs when submitting.

Use cases:

  • Prototyping or collecting partial input without interruption.

Example:

<form action="/feedback" method="post" novalidate>
  <input type="email" name="email" required>
  <input type="text" name="comments">
  <input type="submit" value="Send Feedback">
</form>

Output:

Additional nuances:

  • Overrides all HTML5 validation (required, pattern, etc.).
  • Consider removing in production to ensure data quality.

Supported Browsers

All modern browsers support these form attributes. Minimum versions: Chrome 15+, Firefox 4+, Edge 12+, Safari 6+, Opera 12+

FAQs on Input Form Attributes in HTML

Can I use form on any input type?

Yes—most input types support the form attribute, including text, email, checkbox, etc. Exceptions are rare; always test custom workflows.

What happens if formaction is empty?

An empty formaction reverts to the <form> element’s action URL.

Do HTML validation attributes still work with novalidate?

No—anything on the form or input side that triggers validation (e.g., required, pattern) is skipped when novalidate or formnovalidate is present.

How do I send a form response to an <iframe>?

Give the <iframe> a name and set formtarget to that name on your submit button.

Can I mix formmethod and formaction on the same button?

Both attributes can coexist to override both the method and endpoint for a particular submission.

Subscribe to our newsletter

Get the freshest news and resources for developers, designers and digital creators in your inbox each week

© 2000 – 2025 SitePoint Pty. Ltd.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.