Make Beautifully Resilient Apps With Progressive Enhancement
A good walkthrough on how to build a form that hooks into an API and works either with or without JavaScript.
One note however: Austin in incorrect in that you absolutely can define nested objects in your forms. I’ve done it many times. Your field names just need to use bracket notation like this:
<input name="foo['bar']['baz']">
That will pipe through as the value for the baz property of bar within foo.