alot of this comes down to design and flow.
Yes, you are using the onchange event so that you dont' need buttons- or to rely on the user clicking them.
You can have a single script handling a form in all it's "states" and finally, when the user has pressed submit managing that.
Or...
the form with the final submit button has no visible controls, just a stack of hidden fields with the values from the last time the form was submitted. If anything changes the other submit will happen and the final form will be updated.
If you design your page well your user won't know the difference.