Поскольку вы используете форму alter, поэтому вы не создаете форму самостоятельно, вы должны добавить обработчик проверки самостоятельно:
function myModule_form_alter(&$form, $form_state, $form_id) {
$form['email_address'] = array(
'#type' => 'textfield',
'#title' => t('Enter your email address (optional)'),
'#default_value' => $object['email_address'],
'#weight' => 4,
'#size' => 60,
'#maxlength' => 128,
'#description' => t('Enter email address.'),
);
$form['#validate'][] = 'my_validation_function';
}
function my_validation_function(&$form, &$form_state) {
if ($form_state['values']['email_address'] == '') {
form_set_error('', t('Email must be valid format if entered.'));
}
}
Drupal будет по умолчанию использовать только валидацию, определенную как form_name
+ _validate
. Это не тот случай, так как вы используете hook_form_alter
.