diff --git a/conditional_fields.module b/conditional_fields.module index ccd04a0..b4c3f16 --- a/conditional_fields.module +++ b/conditional_fields.module @@ -673,11 +673,16 @@ function conditional_fields_dependent_validate($element, &$form_state, $form) { // Check if this field's dependencies were triggered. $triggered = conditional_fields_evaluate_dependencies($dependent, $form, $form_state); + $return = FALSE; if ($evaluated_dependencies = conditional_fields_evaluate_dependencies($dependent, $form, $form_state, FALSE)) { foreach ($evaluated_dependencies[$dependent['#field_name']] as $operator) { foreach ($operator as $state => $result) { + if (($result && $state == 'visible' && $triggered) || (!$result && $state == '!visible' && !$triggered)) { + $return = TRUE; + } if (($result && $state == 'required' && $triggered) || (!$result && $state == '!required' && !$triggered)) { + $return = TRUE; $key_exists = NULL; $input_state = drupal_array_get_nested_value($form_state['values'], $dependent['#parents'], $key_exists); if ($key_exists) { @@ -706,7 +711,7 @@ function conditional_fields_dependent_validate($element, &$form_state, $form) { } } - if ($triggered) { + if ($return) { return; }