A form mostly uses the POST method when submitting. But there is another form method that’s rarely used: GET. When submitting a form using this method, a query string is added at the end of the URL you submit to that includes the form’s data. Probably its most common use case is for a search results page where results are shown based on a query string variable.

Using GET works as a way to pass data from page to page, without requiring any kind of backend to do the storing and passing, or Javascript to hide and show fields. It’s a way to use built-in browser features without a bunch of overhead needed to setup. Just like how you can use browser validation, and other modern form field features.

You could build your form as multiple fully customizable static pages without needing complicated code for steps. And you can use the query string data for functionality like conditionals to show fields based on data a user submitted in a previous step.

By default, fields are only submitted to a query string to the next set page. In order to pass URL parameters across multiple steps/pages, here’s a Javascript snippet that creates hidden fields from submitted query string parameters in order to continue passing them to the next page: