tôi mở rộng Thực thểBiểu mẫu
class và tôi cố ghi đè nút gửi để đặt thuộc tính ID HTML của nó (thử #1). Vì nó không hoạt động, tôi đã cố gắng bọc nút trong một trình bao bọc <div>
. Tôi đã cố gắng quấn bằng hai cách khác nhau (thử #2 và thử #3), nhưng chúng không hoạt động.
Cách duy nhất tôi có thể ghi đè nút gửi là đặt '#thuộc tính'
để đặt thuộc tính HTML lớp
và để thêm lớp CSS của riêng tôi, nhưng mong muốn của tôi là đặt HTML Tôi
thuộc tính. Và tôi muốn thực hiện việc ghi đè này trong phương thức hành động () (không phải biểu mẫu ()).
sử dụng Drupal\Core\Entity\ContentEntityForm;
lớp MyForm mở rộng ContentEntityForm {
hành động chức năng được bảo vệ (mảng $form, FormStateInterface $form_state) {
$actions = parent::actions($form, $form_state);
$actions['submit'] = [
'#type' => 'gửi',
'#id' => 'nút lưu', // <- thử #1
'#value' => t('Lưu'),
'#ajax' => [
'gọi lại' => '::ajaxCallback',
'sự kiện' => 'mousedown',
'trình bao bọc' => 'thanh-trình bao bọc-1', // <- thử #2
],
'#prefix' => '<div id="bar-wrapper-2">', // <- thử #3
'#suffix' => '</div>',
'#thuộc tính' => [
'class' => ['foo'], // <- thử #4
],
];
$actions['submit_wrapper'] = [
'#type' => 'đánh dấu',
'#markup' => '<div id="bar-wrapper-1"></div>'
];
trả lại hành động $;
}
}
Tôi cho rằng tôi chỉ có thể ghi đè ID HTML bên trong mẫu đơn()
, nhưng có vẻ hơi mâu thuẫn vì tôi có thể ghi đè/thêm một lớp CSS.