I have a Drupal registration form with a placeholder set on a first name field. I am trying to get the form to check so that if the placeholder value is the same as the submitted value it will give an error asking them to be sure to enter their first name. Here is my code:
function mytheme_form_alter(&$form, &$form_state, $form_id){ if ($form_id == 'user_register_form'){ $form['field_first_name']['und'][0]['value']['#default_value'] = t('First Name'); $form['field_first_name']['und'][0]['value']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'First Name';}"; $form['field_first_name']['und'][0]['value']['#attributes']['onfocus'] = "if (this.value == 'First Name') {this.value = '';}"; // Alternative (HTML5) placeholder attribute instead of using the javascript $form['field_first_name']['und'][0]['value']['#attributes']['placeholder'] = t('First Name'); $form['#validate'][] = 'parenting_validate_register_form'; $form['actions']['submit']['#value'] = t('JOIN US FREE'); } } function mytheme_validate_register_form(&$form, &$form_state) { if ($form_state['values']['field_first_name'] == 'First Name') { form_set_error('firstname', t('Please enter your first name.')); } }
So the problem I am having is that with the above, every submission is throwing the error. Even if something other than “First Name” is entered. For some reason if ($form_state['values']['field_first_name'] == 'First Name')
is returning true no matter what the “field_first_name” value is.
I’ve looked into using https://drupal.org/project/clientside_validation, but it just seems like overkill for what I’m trying to do.
Thanks for any help.
Sponsored by SupremePR