Submit form button, which only submits the form if all (visible) required fields are completed, and then locks the form



I'm trying to add a submit form button, which only submits if all the visible required fields are completed. I also have some invisible required fields - they are invisible because not all subforms are shown each time - but if a subform is shown, then all fields on it need to be completed. 

Is this possible? I also want the button to lock the form, so that no further changes can be made (including to the auto-populated current date field).

And thirdly, is it possible that when the form is being submitted, it is converted to a standard non-xfa PDF form (as xfa functionality will no longer be required after submission as the form is locked)?