Wenn ein Drupal-Textfeld (input-Feld) einen Ajax-Callback verwendet und dieser auf die Events blur oder focusout reagiert, kann es zu einer Endlos-Schleife des Fokus-Verhaltens des Text-Felds kommen.
Der Ajax-Callback setzt den Fokus automatisch zurück auf das Feld welches das Ajax-Event (blur bzw. focusout) ausgelöst hat. Damit kommt es quasi zu einer Endlos-Schleife, in der der Fokus immer wieder auf dem Text-Feld landet und man nicht weiter im Formular navigieren kann.
Es gibt einen undokumentierten Parameter für den Ajax-Callback der dieses Verhalten aufheben kann:
Den Parameter "disable-refocus" auf true setzen.
$form['textfeld']['#ajax'] = [
'callback' => 'Drupal\my_module\Form\MyForm::ajaxfunction,
'event' => 'blur',
'disable-refocus' => TRUE,
'progress' => [
'type' => 'throbber',
'message' => t('Message'),
]
];
Diskutiert wird das Ganze hier: https://www.drupal.org/project/drupal/issues/2627788
Neuen Kommentar schreiben