Using hook_form_alter() to add the "None" value in the select list of a required field When a field is required, Drupal removes the default "-None-" value.  However, also for a required field, "-None-" is very valuable as it requires the user to make a deliberate selection (put the first value on the select list as default doesn't force a sloppy user to make a selection).

I need to:


Have "-None-" as default value in the select list of a required field
Not accept "-None-" as field value when the form is submitted


How can I achieve this with hook_form_alter()?
By default, the label for the first default option is automatically set to "- Select -" for a required field and "- None -" for an optional field. To force the #empty_option to also show "- None -" for a required field, assign it with something like:

"#empty_option" =&gt; t('- None -'),


This will keep everything else intact and will do exactly what you want. See class Select.