2015-11-17 2 views
0

У меня есть действующая всплывающая форма, которую я использую с Magnific Popup Lightbox. Внутри у меня есть пользовательская кнопка закрытия, которая обрабатывает собранную информацию при нажатии. Я хотел бы, чтобы пользователь мог нажать клавишу ввода (в любое время, а не только после окончательного текстового поля) и активировать кнопку закрытия. Мой код выглядит следующим образом:Назначить кнопку ввода, чтобы закрыть кнопку в Magnific Popup

$.magnificPopup.open({ 
    items: { 
     src: 'nameselect.html', 
     type: 'ajax' 
    }, 
    closeOnContentClick : false, 
    closeOnBgClick :true, 
    showCloseBtn: false, 
    enableEscapeKey : false, 
    callbacks: { 
     open: function(){ 
      $.magnificPopup.instance.wrap[0].addEventListener('focus', function (e) {kNameSearch(e,focusText)}); 
      $(document).keypress(function(e){ 
       if (e.which == 13){ 
        $("#cbutton").click(); 
       } 
      }); 
     }, 
     afterClose: function(){ 
      document.getElementById("SearchName").blur(); 
     } 
    } 
}); 

Но, похоже, что $(document).keypress(function(){}) линии не будет работать. Я также попытался вставить код в функцию, вызываемую слушателем над ним, без каких-либо успехов. Любые предложения очень приветствуются.

+1

заменить $ ("# CButton") нажмите кнопку (); с $ .magnificPopup.close(); – Fionna

+0

Спасибо, но моя цель - не просто закрыть всплывающее окно. У меня есть пользовательская кнопка закрытия, которая присваивает данные, собранные в форме, различным переменным. Я теряю это, если я просто закрываю всплывающее окно, потому что данные формы не сохраняются после закрытия (моя пользовательская кнопка закрытия также вызывает '. $ .magnificPopup.close();', btw). – user3398945

+0

Можете ли вы сделать скрипку? – Fionna

ответ

0

Решение заключалось в том, чтобы непосредственно вызвать функцию кнопки, а не пытаться «нажимать» кнопку. Так что это:

$(document).keypress(function(e){ 
    if (e.which == 13){ 
     $("#cbutton").click(); 
    } 
}); 

был изменен следующим образом:

$(document).keypress(function(e){ 
    if (e.which == 13){ 
     closeButton(); 
    } 
}); 

Учитывая, что кнопка была определена в HTML как:.

<input id="cbutton" onclick="closeButton()" type="button" value="Close" /> 
Смежные вопросы