From b354396b69ab75f56e609e6145fd24a46fdb56ba Mon Sep 17 00:00:00 2001 From: Gerhard Killesreiter Date: Thu, 20 Apr 2006 16:35:29 +0000 Subject: #59528, password_confirm fields don't highlight errors, patch by sammys --- includes/form.inc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'includes') diff --git a/includes/form.inc b/includes/form.inc index 4c77f9c59..5aef91b19 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -713,6 +713,18 @@ function theme_password_confirm($element) { return theme('form_element', $element['#title'], '
'. $element['#children']. '
', $element['#description'], $element['#id'], $element['#required'], form_get_error($element)); } +/* + * Expand a password_confirm field into two text boxes. + */ +function expand_password_confirm($element) { + $element['pass1'] = array('#type' => 'password', '#size' => 12, '#value' => $element['#value']['pass1']); + $element['pass2'] = array('#type' => 'password', '#size' => 12, '#value' => $element['#value']['pass2']); + $element['#validate'] = array('password_confirm_validate' => array()); + $element['#tree'] = TRUE; + + return $element; +} + /** * Validate password_confirm element. */ @@ -725,13 +737,12 @@ function password_confirm_validate($form) { form_set_value($form, $pass1); if ($pass1 != $pass2) { form_error($form, t('The specified passwords do not match.')); - form_error($form['pass1']); - form_error($form['pass2']); } } elseif ($form['#required'] && !empty($_POST['edit'])) { - form_set_error('pass1', t('Password field is required.')); + form_error($form, t('Password field is required.')); } + return $form; } -- cgit v1.2.3