2011-03-07 3 views
0

Lorsque j'exécute la ligne ci-dessous, la boîte de dialogue s'ouvre correctement.Comment définir le focus sur une zone de texte lorsqu'une boîte de dialogue jquery est chargée

$('#divMyDialogBox').dialog('open'); 

Mais j'ai une zone de texte (i.e. txtAddr) à l'intérieur de la div (boîte de dialogue) & veulent que l'accent soit poussé, quand il va être chargé.

J'ai essayé le code ci-dessous, mais cela ne fonctionne pas. Veuillez rectifier la même chose ou suggérer de nouvelles solutions.

 $('#divEmailDialogBox').dialog 
     ({ 
      modal: true, 
      draggable: true, 
      hide: 'slide', 
      show: 'slide', 
      height: 100, 
      width: 575, 
      bgiframe: true, 
      autoOpen: false, 
      resizable: false, 
      closeOnEscape: false, 
      zIndex: 9999, 
      open: function(){alert("Hi"); $("#txtAddr").focus();} 
     }); 

    <%if(true) 
    {%> 
       $('#divEmailDialogBox').dialog('open'); 
    <%} 

Ici, l'alerte se déclenche, indique que le code est appelé.

Merci à l'avance, Biki

Répondre

0

Est-ce que votre fonction s'appelle à tous? Est-ce qu'il est appelé avant ou après l'apparition de la boîte de dialogue? (Vous pouvez modifier l'appel focus avec un alert pour le savoir).

Avez-vous essayé d'utiliser l'événement focus du dialogue au lieu de l'événement open?

+0

Edité mon poste par votre commentaire. – Biki

0

Assurez-vous qu'il n'y a pas d'autre zone de texte sur la page avec le même ID. Pouvez-vous coller votre code HTML ici s'il vous plaît?

+0

J'ai revérifié et j'ai trouvé que les identifiants sont uniques. – Biki

0

Essayez de remplacer votre spectacle actuel avec ceci:

show: { effect: 'slide', complete: function() { $(this).find("#txtaddr").focus(); }},

Cela devrait fonctionner pour jQuery UI 1.8.4+

Questions connexes