using hook_element_info() to add a placeholder to a form label

glepiza
glepiza used Ask the Experts™
on
Hi.

I am trying to add a placeholder to the date field by using hook_element_info_alter(). There are really few examples of how to do this to add a placeholder, but for some reason it is not working. This is what I am doing:

/**
 * Implementation of hook_element_info_alter().
 */
function customize_register_form_element_info_alter(&$type) {
  if (isset($type['text'])) {
    $type['text']['#process'][] = 'customize_register_form_text';
  }
}

/**
 * Function for editing label.
 */
function customize_register_form_process_text($element) {
  if ($_GET['q'] == 'user/register') {
    if ($element['#array_parents'][0] == 'account') {
      $element['user_user_form_group_user_birth']['#attributes']['placeholder'] = t('00/00/0000');
    }
  }
  return $element;
}


Could you please help me?

Thanks in advance,

Winter
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Perhaps a better way of going about this is to hook into the form and set the placeholder marker?


useing this module: https://drupal.org/project/placeholder


customize_register_form_alter(&$form, &$form_state, $form_id){
$form['your formfield']['#placeholder'] = t('00/00/0000');
}

Open in new window

Author

Commented:
thanks Darren,

For some reason I can´t get it to work, it seems I am using the wrong form field…. please take a look at the screenshot I took to show you the source code and see what I am doing wrong. the form field is suppose to be the name attribute right?

Thanks again,
Captura-de-pantalla-2013-12-13-a.png
Hi,

If you can do a print_r/dpm on the $form element this will show its structure.

I suspect the format should be something like

$form['field_date_of_birth'][LANGUAGE_NONE]['#placeholder']= t('00/00/0000'); in line 2 above

Author

Commented:
So sorry, I forgot to close this question. Thanks for your answer!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial