Question

Bonjour, j’avais une jquery thickbox modal popu sur ma candidature. ( iframe )
Tout fonctionne très bien, mais je souhaite définir le focus sur un champ de saisie spécifique d.

L’Iframe chargeant une page aspx normale, j’ai donc pensé que je ferais un $ (document) .ready (.. focus);
Je mets ce script dans le code IFrame

Cependant, cela ne fonctionne pas. Je crois qu'après le "prêt" un autre code est exécuté par la commande lourde, de sorte qu'il perd le focus. (Par exemple .. Je peux définir la valeur du champ de saisie pour que le mécanisme fonctionne.

Quelqu'un peut-il m'aider à définir le focus? Vous trouverez ci-dessous mon code d'appel.

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
Était-ce utile?

La solution

ThickBox affiche le conteneur de l'iframe en appelant une méthode dans l'événement onload de l'élément iframe. Étant donné que l'iframe est masqué sur la page parent jusqu'à ce que le contenu de l'iframe soit chargé, vous ne pouvez pas définir le focus en utilisant simplement $ (document) .ready (.. focus) ;. Le moyen le plus simple que j'ai trouvé pour contourner ce problème consiste à utiliser setTimeout pour retarder l'appel de fonction qui définit le focus jusqu'à l'affichage de l'iframe:

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

Remarque: vous devrez peut-être ajuster la valeur en millisecondes que vous transmettez à setTimeout.

Autres conseils

De docs.jquery.com:

  

Déclenche l'événement focus de chaque élément correspondant.

     

Ceci entraîne l'exécution de toutes les fonctions liées à l'événement focus.   Notez que cela n’exécute pas la méthode de focus des éléments sous-jacents.

Cela signifie que votre code devrait être plus probablement: $ ('# input_field'). get (0) .focus ()

La différence est que, dans mon exemple, vous utilisez l'élément de focus de l'élément DOM, alors que dans le vôtre, vous utilisez celui de jQuery.

Cela ne fonctionne toujours pas , mais constitue peut-être un pas dans la bonne direction.

A bientôt,

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top