Something like this should work:
[[!FormIt?
...
&customValidators=`myCustomValidator`
&validate=`field1:myCustomValidator`
]]
<form id="myform" action="[[~[[*id]]]]#myform" method="post">
[[!+fi.error.field1]]
<input type="text" name="field1" value="[[!+fi.field1]]">
<input type="text" name="field2" value="[[!+fi.field2]]">
...
</form>
Snippet myCustomValidator
<?php
$success = true;
if (empty(trim($value))){ // field1 is empty
if (isset($validator->fields["field2"])){
if (empty(trim($validator->fields["field2"]))){ // field2 is empty
$success = false;
}
} else {
$success = false;
}
}
if (!$success) {
$validator->addError($key,'Please fill in either field1 or field2!');
}
return $success;