I am an amateur but I have decided to start helping as much as possible on these forums.
I have had a similar problem in the past and did find a solution. I cant say for certain that it is the best solution, but seeing as each button only has 3 required fields, it is a feasible solution.
So here goes the complicated but also kinda simple solution that will work. Please bear in mind my scripting experience is limited.
For the first submit button allow the script to stay in its natural state. Make sure your submission email is correct. You will create a second button that will be a standard button. Change the text to be the same as the text for the first submit button. Within that button, on the click event, put a script like this.
(
if
Required.Field.1.rawValue == null or
Required.FIeld.2.rawValue == null or
Required.FIeld.3.rawValue == null
then
xfa.host.messageBox = ("Please fill all required fields")
else
Submit.Button.execEvent("mouseUp")
endif
repeat this for the second subform button.
now make the actual submit button hidden and place this second button in its place. it will verify that the required fields have values entered and if they are entered it will then press the actual submit button otherwise it will put up the error message. This method requires that the fields required are not marked as required in the Value tab. They need to be optional otherwise built in scripts will interfere with the written command. This is a workaround solution but I have found that it allows for more control of the required fields. You may want to add in a floating asterick or maybe a colored border for the required fields so that users are aware of what fields are required.
I really hope this helps. I know some of this may be confusing but I understand that sometimes it can be difficult to get an answer so if I can be helpful, I will try.