Construiesc un formular cu API-ul formelor drupal.
Validarea funcționează bine pentru toate celelalte domenii ale mele.
Dar am început să încerc și să lucrez și cu butoanele radio acum.
Nu contează dacă dau clic pe o opțiune radio, validarea returnează întotdeauna „culoarea este necesară”.
// Codul metodei de compilare a formularului
$form['data nașterii'] = [
'#type' => 'data',
'#title' => $this->t('Data de naștere'),
'#date_date_format' => 'd-m-Y',
];
$form['color_select'] = [
'#type' => 'radiouri',
'#title' => $this->t('Alege o culoare'),
'#options' => [
'albastru' => $this->t('Albastru'),
'alb' => $this->t('Alb'),
'black' => $this->t('Negru'),
// 'altele' => $this->t('Altele'),
],
'#attributes' => [
'id' => 'color_select',
'name' => 'field_color_select',
],
'#states' => [
'activat' => [
':input[name="field_custom_color"]' => ['value' => ''],
],
],
];
// Codul metodei de validare a formularelor
if ($form_state->getValue('data de naștere') == '') {
$form_state->setErrorByName('data nasterii', $this->t('Data nasterii este obligatorie'));
}
if ($form_state->getValue('color_select') == '') {
$form_state->setErrorByName('color_select', $this->t('Culoarea este obligatorie'));
}
Am crezut că getValue(name) și setErrorByname(name) trebuie să fie la fel ca $form[name] =[]; ca să funcționeze, dar pentru câmpul butoanelor radio, nu funcționează.