There’s a really neat side-effect of this approach…
If you placed the “go to step 2” button on the page using JS, then users without JS would still be able to use the wizard… though it would appear as one big long form.
I’ve used that approach many times.
Sure. Although like I used it it would need some altering to work without JS. I used partials alongside it. For example in this registration page I used you entered requested username and email and before hiding the DIV it checked if that username was taken and only displayed the next step after that validation. Using this method also allowed me to minimize the amount of actions I created in the controller as I prefer creating as few of those as humanly possible. Using this method I got away with creating just one “create” controller that sensed between PUT and POST and did some in-form validation using AJAX and a partial. It’s a little hassle to get going in the beginning but the code looked so much better.