¿Cómo enviar el usuario a la página principal si tecla de escape hace clic en el cuadro de diálogo modal jQuery

Robertcode:

¿Hay una manera de acceder a una página web en casa cuando se pulsa la tecla de escape en un cuadro de diálogo modal? A continuación se muestra el cuadro de diálogo modal que estoy usando:

        <script>
            $(function () {
                $("#dialog-login-message").dialog({
                    modal: true,
                    buttons: {
                        Ok: function () {
                            document.location.href = "/";
                            $(this).dialog("close");
                        }
                    }
                });
            });
        </script>

        <div id="dialog-login-message" title="Login Required">
            <p>
                <span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
                You are not logged into this website. You need to be logged into this website to use the demo.;
            </p>
        </div>

Si un usuario no está autenticado esto parece diálogo. Si se presiona Aceptar que los lleva a la página principal. Sin embargo, si se presiona la tecla de escape del cuadro de diálogo se pasa por la vista y continúa en estar disponible. Me gustaría enviar a la parte posterior de usuario a la página principal, pero no estoy seguro de cómo de aquí. Gracias por adelantado.

Jerdine Sabio :

Usted simplemente puede adjuntar un evento KeyUp / KeyDown y obtener clic en el botón;

$(document).keyup(function(e) {
  if (e.keyCode === 27){ // 27 is esc keycode
     $(this).dialog("close");
     document.location.href = "/";                
  }
});

PERO, este evento será atado en la página, por lo tanto, presionando escen cualquier momento se le redirigirá a la página principal.

Lo que se quiere hacer es añadir una var modalStateque determinará si ese diálogo está activo.

<script>
   var modalState = 0; // declare it outside, 0 means unopened

   $(function () {
       modalState = 1; // change it to active

      $("#dialog-login-message").dialog({
         modal: true,
         buttons: {
            Ok: function () {
               document.location.href = "/";
               $(this).dialog("close");
            }
         }
      });
   });

   $(document).keyup(function(e) {
      if (e.keyCode === 27){ // 27 is esc keycode
         if(modalState == 1){ // check if dialog is active
            $(this).dialog("close");
            document.location.href = "/"; 
         }              
      }
   });
</script>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=303085&siteId=1
Recomendado
Clasificación