Рейтинг:0

Действия формируют переопределение массива для установки атрибута идентификатора HTML

флаг cn

я расширяю EntityForm class, и я пытаюсь переопределить кнопку отправки, чтобы установить ее атрибут HTML ID (попытка № 1). Так как это не работает, я попытался завернуть кнопку в обертку <div>. Я пытался обернуть двумя разными способами (попробуйте № 2 и попробуйте № 3), но они не работают. Единственный способ переопределить кнопку отправки — установить '#атрибуты' установить атрибут HTML учебный класс и добавить свой собственный класс CSS, но я хотел установить HTML я бы атрибут. И я хотел сделать это переопределение в методе действий() (а не в форме()).

используйте Drupal\Core\Entity\ContentEntityForm;

класс MyForm расширяет ContentEntityForm {

  действия защищенной функции (массив $form, FormStateInterface $form_state) {
    $actions = parent::actions($form, $form_state);

    $ действия ['отправить'] = [
      '#type' => 'отправить',
      '#id' => 'кнопка сохранения', // <-- попытка #1
      '#значение' => т('Сохранить'),
      '#ajax' => [
        'обратный вызов' => '::ajaxCallback',
        'событие' => 'нажатие мыши',
        'wrapper' => 'bar-wrapper-1', // <-- попробуйте #2
      ],
      '#prefix' => '<div id="bar-wrapper-2">', // <-- попробуйте #3
      '#суффикс' => '</div>',
      '#атрибуты' => [
        'class' => ['foo'], // <-- попробуйте #4
      ],
    ];

    $actions['submit_wrapper'] = [
      '#type' => 'разметка',
      '#markup' => '<div id="bar-wrapper-1"></div>'
    ];

    вернуть $действия;
  }

}

Я полагаю, что могу переопределить идентификатор HTML только внутри форма(), но это выглядит немного непоследовательно, потому что я могу переопределить/добавить класс CSS.

Рейтинг:1
флаг ch
STF

образец здесь:

$ форма ['отправить'] = [
  '#type' => 'отправить',
  '#value' => $this->t('Отправить'),
  '#вес' => 99,
  '#attributes' => ['class' => ['ex-black'], 'id' => ['testId']],
  '#prefix' => '<div id="testIdWrapper">',
  '#суффикс' => '</div>',
];
Hermann Schwarz avatar
флаг cn
Обратите внимание, я хочу переопределить идентификатор HTML-атрибута в методе action() в моем подклассе `ContentEntityForm`. Это массив $actions, где я пытаюсь сделать переопределение. Таким образом, я могу переопределить атрибут `class`, но не `id`.
Hermann Schwarz avatar
флаг cn
Так что я доволен установкой атрибута `class` в массиве $actions на данный момент.

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

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