2010-08-30 5 views
1

J'utilise jQuery UI Dialog pour ajouter des nouvelles sur mon site. Chaque fois que je clique sur le bouton add news, la boîte de dialogue doit s'ouvrir avec la zone de texte. En fait, j'utilise ckeditor en remplaçant le textarea et il arrive que je ne peux pas taper dans l'éditeur de texte en raison de problème focus (au moins, je pense que c'est le problème).Pourquoi la boîte de dialogue jQuery UI perd-elle le focus à la fin de l'effet ouvert?

Vérifie-le. Au moment où je clique sur le bouton add news, la boîte de dialogue commence à s'ouvrir avec son effet. Notez le jaune encadré textarea ce qui signifie qu'il est concentré (en utilisant Chrome) pendant son apparition. alt text Click to zoom

Avis alors que lorsque la boîte de dialogue se termine paraître, il ne se concentre pas plus et je ne parviens pas à cause de cette

alt text Click to zoom

Aussi, vérifiez mon code http://jsfiddle.net/pzHr2/

Répondre

4

Ce n'est pas une fonctionnalité très bien documentée (euphémisme énorme) que vous pouvez passer un objet comme vous pouvez le .show() UI method comme ceci dans vos options:

show:{ effect: 'slide', complete: function() { $("textarea").first().focus(); }}, 

Cela va l'.focus() lorsque l'animation est terminée, you can give it a try here. Si vous êtes curieux de savoir pourquoi cela fonctionne, you can take a look here.

Note: cette réponse est pour jQuery UI 1.8.4+ (puisque vous utilisez .button()), il ne fonctionnera pas pour les utilisateurs 1.7.x.

+0

Merci Nick, bon conseil !!! Était juste aux prises avec un problème similaire (en mettant l'accent sur la première entrée une fois qu'une boîte de dialogue s'ouvre avec un effet de spectacle). J'ai apporté une modification mineure à votre code pour ma situation: 'show: {effet: 'blind', complete: function() {$ (this) .find (" entrée: première "). Focus(); }} ' – Boycs

+0

J'ai le même problème en chargeant mon formulaire de connexion dans une boîte de dialogue modale dans MVC. La solution proposée ici fonctionne très bien en chrome et FF mais échoue dans IE9. Des idées? –

Questions connexes