Puncte:0

Acțiunile formează suprascrierea matricei pentru a seta atributul ID HTML

drapel cn

prelungesc EntityForm clasa și încerc să înlocuiesc un buton de trimitere, pentru a-i seta atributul ID HTML (încercați #1). Deoarece nu funcționează, am încercat să înfășuresc butonul într-un ambalaj <div>. Am încercat să împachetez cu două moduri diferite (încercați #2 și încercați #3), dar nu funcționează. Singura modalitate prin care pot trece peste butonul de trimitere este să setez „#atribute” pentru a seta atributul HTML clasă și să adaug propria mea clasă CSS, dar dorința mea a fost să setez un HTML id atribut. Și am vrut să fac această înlocuire în metoda actions() (nu form()).

utilizați Drupal\Core\Entity\ContentEntityForm;

clasa MyForm extinde ContentEntityForm {

  acțiuni ale funcției protejate (matrice $form, FormStateInterface $form_state) {
    $actions = parent::actions($form, $form_state);

    $actions['trimite'] = [
      '#type' => 'trimite',
      '#id' => 'buton de salvare', // <-- încercați #1
      '#value' => t('Salvare'),
      '#ajax' => [
        'callback' => '::ajaxCallback',
        'event' => 'mousedown',
        'wrapper' => 'bar-wrapper-1', // <-- încercați #2
      ],
      '#prefix' => '<div id="bar-wrapper-2">', // <-- încercați #3
      '#sufix' => '</div>',
      '#attributes' => [
        'class' => ['foo'], // <-- încercați #4
      ],
    ];

    $actions['submit_wrapper'] = [
      '#type' => 'markup',
      '#markup' => '<div id="bar-wrapper-1"></div>'
    ];

    returnează $acțiuni;
  }

}

Presupun că pot înlocui doar ID-ul HTML din interior formă(), dar pare puțin inconsecvent pentru că pot suprascrie/adaug o clasă CSS.

Puncte:1
drapel ch
STF

o mostră aici:

$form['trimite'] = [
  '#type' => 'trimite',
  '#value' => $this->t('Trimite'),
  '#weight' => 99,
  '#attributes' => ['class' => ['ex-black'], 'id' => ['testId']],
  '#prefix' => '<div id="testIdWrapper">',
  '#sufix' => '</div>',
];
Hermann Schwarz avatar
drapel cn
Vă rugăm să rețineți că vreau să înlocuiesc ID-ul atributului HTML din metoda actions() din subclasa mea de „ContentEntityForm”. Este matricea $actions, unde încerc să fac suprascrierea. În acest fel, pot suprascrie atributul `class`, dar nu `id`.
Hermann Schwarz avatar
drapel cn
Deci, sunt mulțumit de setarea atributului `class` peste matricea $actions pentru moment.

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.