action (HTML attribute)

Share this article

Description

A form is useless unless some kind of processing takes place after the form is submitted. The action attribute is used to inform the browser what page (or script) to call once the "submit" button is pressed.

Example

Here, the action attribute tells the browser to send the form data to a form-handling PHP page (which will presumably convert the form data to something more email-friendly):
<form action="form-to-email.php" method="post"
    accept-charset="windows-1252">
  <div>
    <label for="txtname">Name:</label>
    <input type="text" name="txtname" id="txtname"/>
  </div>
 ⋮
</form>

Value

This element takes as its value a URL to a document that may be on the same server (for example, a shared CGI folder that has various form-processing scripts), or even a page or script on an entirely separate server (perhaps a free form-handling service).

Frequently Asked Questions (FAQs) about HTML Action Attribute

What is the purpose of the action attribute in HTML?

The action attribute in HTML is a critical component of form handling. It specifies where to send the form-data when a form is submitted. Essentially, it defines the URL of the page that will process the submitted information. This could be the URL of a script on your server or an external API endpoint. The action attribute is used within the

tag and its value is generally a file on the server that handles the data processing.

How do I use the action attribute in HTML?

To use the action attribute, you need to include it within the

tag in your HTML code. The value of the action attribute should be the URL where you want to send the form data. Here’s a basic example:

<form action="/submit_form.php" method="post">
<!-- form fields go here -->
</form>
In this example, when the form is submitted, the data will be sent to the “submit_form.php” file on your server.

Can I use a relative URL in the action attribute?

Yes, you can use a relative URL in the action attribute. A relative URL is a URL that is relative to the current page. For example, if your form is on the page “www.example.com/contact.html” and you set the action attribute to “submit_form.php”, the form data will be sent to “www.example.com/submit_form.php”.

What happens if I don’t specify an action attribute in my form?

If you don’t specify an action attribute in your form, the form data will be sent to the URL of the current page. This is the default behavior of the form submission process in HTML. However, it’s generally recommended to always specify an action attribute to ensure that your form data is sent to the correct location.

Can I use an external URL in the action attribute?

Yes, you can use an external URL in the action attribute. This is useful if you’re using an external service to process your form data. For example, you might use a service like Formspree or Netlify to handle form submissions on a static website. In this case, you would set the action attribute to the URL provided by the service.

Can I use the action attribute with GET and POST methods?

Yes, the action attribute can be used with both GET and POST methods. The method attribute in the form tag determines how the form data is sent. If you use the GET method, the form data is appended to the URL specified in the action attribute. If you use the POST method, the form data is included in the body of the HTTP request.

Can I change the action attribute dynamically with JavaScript?

Yes, you can change the action attribute dynamically with JavaScript. This can be useful if you need to change the form submission URL based on user input or other factors. You can use the setAttribute method to change the action attribute in JavaScript.

Is the action attribute required in HTML5?

No, the action attribute is not required in HTML5. If you don’t specify an action attribute, the form data will be sent to the URL of the current page. However, it’s generally recommended to always specify an action attribute to ensure that your form data is sent to the correct location.

Can I use the action attribute with AJAX?

Yes, you can use the action attribute with AJAX. When using AJAX to submit a form, the action attribute specifies the URL to send the request to. However, instead of the form being submitted in the traditional way, the AJAX code intercepts the form submission and sends the data asynchronously, allowing the page to stay on the same page without a refresh.

Can I use multiple action attributes in a single form?

No, you cannot use multiple action attributes in a single form. Each form can only have one action attribute. If you need to send form data to multiple locations, you would need to use JavaScript or a server-side script to handle this.

Adam RobertsAdam Roberts
View Author

Adam is SitePoint's head of newsletters, who mainly writes Versioning, a daily newsletter covering everything new and interesting in the world of web development. He has a beard and will talk to you about beer and Star Wars, if you let him.

Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week