Рейтинг:2

Disable a field if another field is disabled

флаг lb

I need to disable field A if field B is disabled too. Actually, my current field A has the following #states (altered using hook_alter_form) to disable it if field B or field C are empty:

/**
 * Implements hook_form_alter().
 */
function my_module_form_alter(&$form, $form_state, $form_id) {
 
  $form['field_a']['#states'] = [
    'disabled' => [
      [':input[name="field_b[0][value][date]"]' => ['empty' => TRUE]],
      'or',
      [':input[name="field_c[0][value][date]"]' => ['empty' => TRUE]],
    ],
  ];
}

And it works perfectly, but I need to add the condition mentioned before. I found this in the official documentation: https://www.drupal.org/docs/drupal-apis/form-api/conditional-form-fields and I tried to use some of them like 'readonly' or 'readwrite' but this didn't work. Can I evaluate properties like '#disabled' from here? something similar to this:

function my_module_form_alter(&$form, $form_state, $form_id) {

  $form['field_a']['#states'] = [
    'disabled' => [
      [':input[name="field_b[0][value][date]"]' => ['empty' => TRUE]],
      'or',
      [':input[name="field_c[0][value][date]"]' => ['empty' => TRUE]],
      'or',
      [':input[name="field_b"]' => ['#disabled' => TRUE]],
    ],
  ];
}
флаг in
Вы можете проверить [Модуль условных полей] (https://www.drupal.org/project/conditional_fields). Это может покрыть ваши потребности.
Рейтинг:0
флаг cn

Вы не можете сделать это с состояниями, вот что говорится в документах

Следующие состояния могут использоваться при проверке значений других полей:

пустой
заполненный
проверил
непроверенный
расширенный
рухнул
стоимость

Итак, для этой конкретной функции вам нужно будет использовать javascript или jquery.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.