Postępowałem zgodnie z oficjalną dokumentacją interfejsu API formularza, ale ten kod nie działa dla mnie na Drupal 8:
public function buildForm(array $form, FormStateInterface $form_state) {
$form['upload'] = array(
'#title' => t('Upload Images'),
'#type' => 'managed_file',
'#upload_location' => 'public://image_example_images/',
'#element_validate' => array('file_generic_settings_max_filesize'),
);
return $form;
}
private function file_generic_settings_max_filesize($element, &$form_state) {
form_error($element, 'This is an error.');
}
Próbuję zastąpić form_error () przez $ form_state-> setErrorByName (), ale ten sam problem, plik jest przesyłany i sprawdzanie poprawności nie jest wywoływane.
Czy masz jakieś rozwiązanie? Dokumentacja #element_validate jest nieaktualna?
Mój cel: Prześlij wiele obrazów, użyj niestandardowej weryfikacji i wstaw wszystkie miniatury obrazów w <div class="preview"></div>
polu z nazwami każdego z nich.
Przykład: (Po przesłaniu wyświetl miniatury i pole tytułu dla nazwy wszystkich zdjęć)
W przeciwnym razie, po przesłaniu, do wyświetlenia Miniatury i inne pola (tytuł i opis) dla każdego obrazu, muszę użyć #value_callback, #process, #attached (zarządzać polem / wyświetlaczem js po przesłaniu) lub inną opcją proszę?
Dzięki.