An iron-form can submit both custom and native elements.

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 spinner during submission.

Example of using a native form to do a page redirect.

Since an iron-form submits its elements with an XHR, it cannot do a page redirect after submission. If you need one, you can use a native form element and submit all the custom elements using hidden inputs.