Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.391
diff -u -p -r1.391 form.inc
--- includes/form.inc 3 Nov 2009 05:27:18 -0000 1.391
+++ includes/form.inc 4 Nov 2009 02:49:13 -0000
@@ -825,7 +825,10 @@ function _form_validate($elements, &$for
// checkboxes, can return a valid value of '0'. Instead, check the
// length if it's a string, and the item count if it's an array.
if ($elements['#required'] && (!count($elements['#value']) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0))) {
- form_error($elements, $t('!name field is required.', array('!name' => $elements['#title'])));
+ form_error($elements, $t('!name field is required.', array(
+ '!field_id' => $elements['#id'],
+ '!name' => $elements['#title'],
+ )));
}
// Verify that the value is not longer than #maxlength.
@@ -2757,14 +2760,21 @@ function theme_form_element($variables)
$output = '
' . "\n";
$required = !empty($element['#required']) ? theme('form_required_marker', array('element' => $element)) : '';
+ $error = '';
+ if (!empty($element['#required']) && empty($element['#value'])) {
+ $error = form_get_error($element) ? '' . $t('Field is required.') . '' : '';
+ }
+ else {
+ $error = form_get_error($element) ? '' . filter_xss_admin(form_get_error($element)) . '' : '';
+ }
if (!empty($element['#title']) && empty($element['#form_element_skip_title'])) {
$title = $element['#title'];
if (!empty($element['#id'])) {
- $output .= ' \n";
+ $output .= ' \n";
}
else {
- $output .= ' \n";
+ $output .= ' \n";
}
}
Index: modules/field/field.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.test,v
retrieving revision 1.65
diff -u -p -r1.65 field.test
--- modules/field/field.test 31 Oct 2009 16:06:35 -0000 1.65
+++ modules/field/field.test 4 Nov 2009 02:49:13 -0000
@@ -1432,7 +1432,7 @@ class FieldFormTestCase extends FieldTes
// Submit with missing required value.
$edit = array();
$this->drupalPost('test-entity/add/test-bundle', $edit, t('Save'));
- $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
+ $this->assertText(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
// Create an entity
$value = mt_rand(1, 127);
@@ -1448,7 +1448,7 @@ class FieldFormTestCase extends FieldTes
$value = '';
$edit = array("{$this->field_name}[$langcode][0][value]" => $value);
$this->drupalPost('test-entity/' . $id . '/edit', $edit, t('Save'));
- $this->assertRaw(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
+ $this->assertText(t('!name field is required.', array('!name' => $this->instance['label'])), 'Required field with no value fails validation');
}
// function testFieldFormMultiple() {
Index: modules/simpletest/tests/form.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/form.test,v
retrieving revision 1.20
diff -u -p -r1.20 form.test
--- modules/simpletest/tests/form.test 2 Nov 2009 03:00:28 -0000 1.20
+++ modules/simpletest/tests/form.test 4 Nov 2009 02:49:13 -0000
@@ -52,7 +52,7 @@ class FormsTestCase extends DrupalWebTes
$elements['file']['empty_values'] = $empty_strings;
// Regular expression to find the expected marker on required elements.
- $required_marker_preg = '@\*@';
+ $required_marker_preg = '@\*.*@';
// Go through all the elements and all the empty values for them
foreach ($elements as $type => $data) {