J'ai vu quelques questions concernant les modaux bootstrap, mais aucune ne ressemble exactement à celle-ci, alors je vais continuer.
J'ai un modal que j'appelle en cliquant comme ça ...
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
});
Cela fonctionne bien, mais lorsque j'affiche le modal, je veux me concentrer sur le premier élément d'entrée ... Dans certains cas, le premier élément d'entrée a un identifiant de #photo_name.
Alors j'ai essayé
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
$("input#photo_name").focus();
});
Mais ce fut en vain. Enfin, j'ai essayé de lier à l'événement 'show', mais même ainsi, l'entrée ne se concentrera pas. Enfin juste pour les tests, comme je soupçonnais qu'il s'agissait de l'ordre de chargement de js, j'ai mis un setTimeout juste pour voir si je retarde une seconde, la mise au point fonctionnera, et oui, ça marche! Mais cette méthode est évidemment de la merde. Existe-t-il un moyen d'avoir le même effet que ci-dessous sans utiliser un setTimeout?
$("#modal-content").on('show', function(event){
window.setTimeout(function(){
$(event.currentTarget).find('input#photo_name').first().focus()
}, 0500);
});