iron-form works with native and custom elements, and can prevent automatic redirection

You can submit a form in many different ways: by manually calling submit(), using a native button, or by wrapping a paper-button in a native button:

To customize the request sent to the server, you can listen to the iron-form-presubmit event

Example of an iron-form reacting to state changes

This form will have the "Submit" button disabled until all fields are valid, and then show a paper-spinner during submission.

Iron-form respects the novalidate form attribute

iron-form respects nested elements