Festlegen des Fokus für ein bestimmtes Feld in einem Bootstrap-Modal, sobald es angezeigt wird

Ich habe ein paar Fragen in Bezug auf Bootstrap-Modals gesehen, aber keine genau so, also werde ich weitermachen.

Ich habe einen Modal, den ich so aufklicke ...

$(".modal-link").click(function(event){
  $("#modal-content").modal('show');
});

Das funktioniert gut, aber wenn ich das Modal zeige, möchte ich mich auf das erste Eingabeelement konzentrieren ... In manchen Fällen hat das erste Eingabeelement die ID #photo_name.

Also habe ich es versucht

   $(".modal-link").click(function(event){
     $("#modal-content").modal('show');
     $("input#photo_name").focus();
   });

Dies war jedoch erfolglos. Zuletzt habe ich versucht, mich an das 'Show'-Ereignis zu binden, aber trotzdem wird die Eingabe nicht fokussiert. Zuletzt nur zum Testen, da ich den Verdacht hatte, dass es sich um die Ladereihenfolge von js handelt, habe ich ein setTimeout eingegeben, um zu sehen, ob ich eine Sekunde verzögere, ob der Fokus funktioniert und ja, es funktioniert! Aber diese Methode ist offensichtlich Mist. Gibt es eine Möglichkeit, den gleichen Effekt wie unten zu erzielen, ohne ein setTimeout zu verwenden?

  $("#modal-content").on('show', function(event){
    window.setTimeout(function(){
      $(event.currentTarget).find('input#photo_name').first().focus()
    }, 0500);
  });

Antworten auf die Frage(11)

Ihre Antwort auf die Frage