Puncte:0

Validarea pentru intrările radio nu funcționează pentru mine

drapel il

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ă.

drapel cn
Cunoașteți modulul Exemple? Există un exemplu de radiouri (și multe alte părți ale Form API) în submodulul `form_api_example`: https://www.drupal.org/project/examples
Jorn Reed avatar
drapel il
@PatrickKenny nu, nu știam asta haha. Voi arunca o privire!
Puncte:0
drapel il

Am reușit să-l fac să funcționeze așa:

$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' => 'color_select',
  ],
  '#states' => [
    'verificat' => [
      ':input[name="color_select"]' => [
        ['value' => 'albastru'],
        'sau',
        ['value' => 'alb'],
        'sau',
        ['value' => 'negru'],
      ],
    ],
  ],
];

Deși nu sunt sigur cum funcționează acum. Setează de fapt butonul radio pe bifat când valoarea este una dintre valorile date?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.