Pregunta

Al referirse a http://jshotkeys.googlepages.com/test-static- 01.html Trato de poner en práctica esta poderosa herramienta y frente a algún problema.

cada vez que al hacer clic en Ctrl S, que emergerá un indicador de la ventana me pregunta si quiero salvar mi testing.html

Quiero hacer caso omiso de solicitud de Windows.

Lo que quiero es simple: 1. cuando la gente haga clic en Guardar botón / uso teclas Ctrl del teclado s

  1. guión que hacer un create () comprobando

  2. si es cierto y luego continuar a enviar el formulario, si es falso, y luego se detiene alerta Por favor, introduzca la pregunta, se centran de nuevo a txtQuestion, y no hacer ninguna otra acción.

A continuación se muestra el código fuente completo para referencia:     introduzca

<html>
<head>
    <style>
        * {font-family: Helvetica, Verdana, Arial; font-size:0.95em}
        .eventNotifier{width: 100px; float: left; color:navy; 
              border: dotted 1px navy; padding: 4px; background-color:white; 
              margin:3px}
        .dirty{border: solid 1px #0ca2ff; color:white; 
               background-color:#0ca2ff}
    </style>

    <script src="jquery-1.3.2.min.js"></script>
    <script src="jquery.hotkeys-0.7.9.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {

// weird- encontré la alerta Ctrl + S que aparezca dos veces .. ??? $ (Ventana) .keypress (function (event) {   if ((event.which == 115 && event.ctrlKey)) {       alert ( "Ctrl + S pulsa");       event.preventDefault ();   } });

            jQuery(document).bind('keydown', 'Ctrl+s',
                   function(evt){ Create(); return false; });
            //jQuery(document).bind('keydown', 'Ctrl+s',
                  //function (evt){jQuery('#_Ctrl_s'); return false; });
        });

        function Create()
        {
            var f = document.frm

            if (f.txtQuestion.value.length == 0)
            {
                alert('Please enter Question.')
                f.txtQuestion.focus()
                return false
            }
            f.submit()
        }

    </script>
</head>
<body> 
    <form name="frm" method=post action="" >
      <div id="_Ctrl_s" class="eventNotifier">Ctrl+s</div>
      <input type=text name="txtQuestion" maxlength="255" 
                class="field400" value="">
      <input type=button value="Save" name="BtnSave" onclick="Create()" 
                class=text100>
    </form>
</body>
</html>

código aquí

¿Fue útil?

Solución

Para evitar que se muestre el cuadro de diálogo Guardar como navegador, deberá evitar que la acción del evento por defecto, en la llanura ejemplo jQuery:

$(window).keypress(function(event) {
  if ((event.which == 115 && event.ctrlKey)){
      alert("Ctrl+S pressed");
      event.preventDefault();
  }
});

Otros consejos

Su fragmento de código está bien, pero con el fin de impedir la acción navegador por defecto (como se muestra Guardar de diálogo) debe coger el KeyPress evento (no el KeyDown) y por supuesto return false .

jQuery(document).bind('keypress', 'Ctrl+S',function (evt){ 
 //do job..
 return false
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top