Focus() не работает внутри colorbox pop-up

Я попытался использовать focus для первого поля ввода в форме. но он не работает. Когда я вызываю attr("id") для этого ввода, он работал. Когда я вызываю фокус для одного и того же входа, я не видел никаких результат. Я также попытался использовать собственный Javascript. Кто-нибудь знает, как исправить это?

Ответ 1

Вы все недопонимаете вопрос. Когда Colorbox открывается, вы не можете сфокусировать поле ввода?

... если вы не добавите фокус на ключ Colobox onComplete, например.

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

Вы также можете привязать фокус к крюку события:

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

Этого должно быть достаточно, чтобы начать.

Ответ 2

использовать

$(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();
    });

Ответ 3

Может случиться так, что когда ваш colorbox открывается, его фокус переходит на самый высокий элемент, т.е. тело страницы. используйте document.activeElement, чтобы найти, что основное внимание было уделено тому элементу. Затем найдите iframe или id вашего colorbox, а затем установите фокус на нем

Ответ 5

Я только что наткнулся на эту проблему.

Я думаю, что лучше всего иметь один $.colorbox открывающий, как это:

    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 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;
}

Ответ 6

Вы также можете использовать

$.colorbox({ 

...,
trapFocus: false
});

для отключения фокуса внутри colorbox