diff --git a/conditional_fields.module b/conditional_fields.module index f493fc3..0c5b6b9 100644 --- a/conditional_fields.module +++ b/conditional_fields.module @@ -690,11 +690,10 @@ function conditional_fields_dependent_validate($element, &$form_state, $form) { return; } - // Mark submitted values for removal. We have to remove the after all fields + // Mark submitted values for removal. We have to remove them after all fields // have been validated to avoid collision between dependencies. $form_state_addition['parents'] = $dependent['#array_parents']; - // Optional behavior: reset the field to its default values. // Default values are always valid, so it's safe to skip validation. if (!empty($element['#conditional_fields_reset_if_untriggered'])) { @@ -1016,9 +1015,12 @@ function conditional_fields_evaluate_dependencies($dependent, $form, $form_state // Extract field values from submitted values. $values = NULL; $dependee = $dependency['dependee']; - $dependee_form_field = drupal_array_get_nested_value($form, $form['#conditional_fields'][$dependee]['parents']); - $dependee_values_location = conditional_fields_form_field_get_values($form[$dependee_form_field['#parents'][0]], $form_state); - if (isset($dependee_values_location)) { + $dependee_parents = $form['#conditional_fields'][$dependee]['parents']; + // Remove the language key from the field parents. + array_pop($dependee_parents); + $dependee_form_field = drupal_array_get_nested_value($form, $dependee_parents); + $dependee_values_location = conditional_fields_form_field_get_values($dependee_form_field, $form_state); + if (isset($dependee_values_location[$dependee_form_field['#language']])) { $values = $dependee_values_location[$dependee_form_field['#language']]; }