You can use a script with a recursive function to collect all empty mandatory fields and cancel the submitting attempt if any is found. This can be executed in the preSubmit event for example.
//Recursive function to find all empty mandatory fields
function checkMandatoryField(oNode, aList) {
if (oNode.className === "field") {
if (oNode.validate.nullTest === "error" && oNode.isNull) {
aList.push(oNode.name);
}
}
for (var i = 0; i < oNode.nodes.length; i += 1) {
checkMandatoryField(oNode.nodes.item(i), aList);
}
}
// Call function, first parameter is the name of the forms root element.
checkMandatoryField(form1, aList = []);
// If there are any fields founds
if (aList.length > 0) {
// Show a message
xfa.host.messageBox("Please fill the following fields first:\n" + aList.join("\n"));
// Cancel planned action
xfa.event.cancelAction = true;
}