Trebuie să dezactivez câmpul A câmp dacă B este si dezactivat.
De fapt, domeniul meu actual A are următoarele #state (modificate folosind hook_alter_form) pentru a-l dezactiva câmpul if B sau câmp C sunt goale:
/**
* Implementează hook_form_alter().
*/
funcția my_module_form_alter(&$form, $form_state, $form_id) {
$form['field_a']['#states'] = [
'dezactivat' => [
[':input[name="field_b[0][value][date]"]' => ['empty' => TRUE]],
'sau',
[':input[name="field_c[0][value][date]"]' => ['empty' => TRUE]],
],
];
}
Și funcționează perfect, dar trebuie să adaug condiția menționată anterior.
Am găsit asta în documentația oficială: https://www.drupal.org/docs/drupal-apis/form-api/conditional-form-fields
și am încercat să folosesc unele dintre ele, cum ar fi „numai citire” sau „citire scris”, dar acest lucru nu a funcționat.
Pot evalua proprietăți precum „#disabled” de aici? ceva asemanator cu asta:
funcția my_module_form_alter(&$form, $form_state, $form_id) {
$form['field_a']['#states'] = [
'dezactivat' => [
[':input[name="field_b[0][value][date]"]' => ['empty' => TRUE]],
'sau',
[':input[name="field_c[0][value][date]"]' => ['empty' => TRUE]],
'sau',
[':input[name="field_b"]' => ['#disabled' => TRUE]],
],
];
}