2011-03-01 22 views
10

He intentado utilizar focus para el primer campo de entrada en el formulario. pero no funciona. Cuando llamo al attr("id") para esa entrada funcionó. Cuando llamo a focus para la misma entrada, no vi ningún resultado . También traté de usar JavaScript nativo. ¿Alguien sabe cómo arreglar eso?enfoque() no funciona en el interior colorbox emergente

Respuesta

1

uso

$(document).ready(function() { 
     // focus on the first text input field in the first field on the page 
     $("input[type='text']:first", document.forms[0]).focus(); 
    }); 
+0

también puede usar '(“: Texto: primero”). focus(); ' – diEcho

+0

Gracias, pero esto funciona solo en el formulario de inicio de sesión. ¿Tiene alguna idea de por qué no funciona en otros formularios $ ("entrada [id = uname]"). val ("1300"); \t \t $ ("input [id = uname]") enfocar (.); llegué campo fuera de foco con el valor = 1,300 –

+0

uso nombre del formulario ... – diEcho

5

usted es Todos entender la pregunta. Cuando se abre Colorbox, ¿no puedes enfocar un campo de entrada?

... a menos que agregue su enfoque a la tecla Colobox onComplete por ejemplo,

$('#mydiv a').colorbox({ onComplete:function(){ $('form input:first').focus(); }}); 

También podría obligar a la atención a un enlace de eventos:

$('#mydiv a').bind('cbox_complete', function(){ 
     $('form input:first').focus(); 
}); 

Eso debería ser suficiente para empezar.

+1

Gracias, esto fue realmente útil - y de hecho se les aplicó un aspecto clave de la cuestión. – penfold

+0

¿Puedes explicar dónde poner este código? –

0

he topamos con este problema.

creo que es mejor tener un solo $ .Colorbox abridor así:

function showActionForColorBox(
     _url, 
     _forFocus 
    ) { 
    $.colorbox(
     { 
      scrolling: false, 
      href: _url, 
      onComplete: function() { 
       idColorboxAjaxIndect1.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect2.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect3.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect4.appendTo($('#cboxOverlay')); 

       // --> Possible element's ID for focus 
       if (_forFocus) { 
        $('#' + _forFocus).focus(); 
       } 
       return; 
      }, 
      onCleanup: function() { 
       // TODO: ? 
       return; 
      }, 
      onClosed: function() { 
       if (shouldReloadPageAfterColorBoxAction) { 
        // --> Should we reload whole page? 
        shouldReloadPageAfterColorBoxAction = false; // NOTE: To be sure: Reset. 
        window.location.reload(false); 
       } 
       else if (cbEBillsActionReloadPopup) { 
        // --> Should we reload colorbox 
        cbEBillsActionReloadPopup = false; 
        showActionForColorBox(_url); 
       } 
       else if (cbShouldLoadAnotherContentAfterClosed) { 
        // --> Should we reload colorbox with custom content? 
        cbShouldLoadAnotherContentAfterClosed = false; 
        $.colorbox({ html: setupContentForcbShouldLoadAnotherContentAfterClosed }); 
        setupContentForcbShouldLoadAnotherContentAfterClosed = ''; 
       } 
       return; 
      } 
     } 
     ); 

    return; 
} 
1

Puede estar sucediendo que cuando se abre el colorbox su enfoque va hacia el elemento más alto es decir, el cuerpo de página. utilice document.activeElement para encontrar que el foco fue a qué elemento. A continuación, busque iframe o la identificación de la caja de colores y luego establecer el foco en él

0

También puede utilizar

$.colorbox({ 

..., 
trapFocus: false 
}); 

para desactivar el foco en el interior colorbox

Cuestiones relacionadas