If you look at the iui.js file itself, line 577, you can see how iUI deals with form.
Onclick, it checks if the button or link has an attribute "type" equals to "submit". If so, it gets the closest <form> element in parent nodes.
Which means the submit button has to be between <form> & </form> + needs to have a type="submit" (you can put this on a input, button or link).
Then it looks if the form has a target="_self" and use the onsubmit attribute to do the job. If onsubmit is not set, then a regular form.submit() is triggered.
That's how forms are taken in account in iUI.
But all of this is done only when you click on the submit button.
If the form element has a target="_self", there is submit event by default on all <form>. iui.js, line 660.
What it does is adding a classname "progress" on the form element, using its "action" value to trigger iui.showPageByHref() (in this case, it returns the "action" url output in the DOM and navigates to it).
So perhaps there is something wrong with the "action" value or with the format / content of form outputs.