Here’s the interesting part of that documentation:
The obvious question is: Why does this method exist, when we’ve had the submit() method since the dawn of time?
The answer is simple. submit() submits the form, but that’s all it does. requestSubmit(), on the other hand, acts as if a submit button were clicked. The form’s content is validated, and the form is submitted only if validation succeeds. Once the form has been submitted, the submit event is sent back to the form object.