I managed to get this working by editing UserDefinedForm.php...
This "if" statement inside getRequiredFields():
if ($field->Required) {
$rules[$field->Name] = array_merge(array('required' => true), $field->getValidation());
$required->addRequiredField($field->Name);
}
became:
if ($field->Required) {
$rules[$field->Name] = array_merge(array('required' => true), $field->getValidation());
$required->addRequiredField($field->Name);
} else {
if ($field->getValidation()) {
$rules[$field->Name] = $field->getValidation();
}
}
Not sure if that's really the best way of doing it but it seems to get the job done. Now, to figure out how to make the error messages more relevant...