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