2010-09-09 13 views
8

He visto algunas otras preguntas al respecto, pero ninguna para Prototype.Enviar formulario cuando ingrese la tecla presionada con Prototype javascript

Tengo un formulario sin un botón de enviar (utiliza un enlace de estilo que llama a algunos javascript).

¿Cuál es la mejor forma de detectar una tecla presionada enter en todos los campos de entrada y enviar el formulario?

Gracias!

+0

No puedo ofrecer ningún consejo específico de prototipo, pero ¿ha considerado agregar un botón Enviar y luego ocultarlo con Prototype/JS? No es la respuesta que quieres, pero se degrada muy bien. –

Respuesta

9

Este es un ejemplo de la clase de cosa que podría utilizar:

$('input').observe('keypress', keypressHandler); 

function keypressHandler (event){ 
    var key = event.which || event.keyCode; 
    switch (key) { 
     default: 
     break; 
     case Event.KEY_RETURN: 
      $('yourform').submit(); 
     break; 
    } 
} 
3

Es el mismo que el anterior pero no es necesario para establecer una función:

$('input').observe('keypress', function(event){ 
    if (event.keyCode == Event.KEY_RETURN || event.which == Event.KEY_RETURN) { 
     // enter here your code 
     Event.stop(event); 
    } 
}); 
0

Con Prototipo:

document.observe("dom:loaded", function() { 
    $$('form').each(function(f) { 
     $(f).select("input").each(function(e) { 
      e.observe('keypress', function(event) { 
       if (event.keyCode == Event.KEY_RETURN || event.which == Event.KEY_RETURN) { 
        this.form.submit(); 
       } 
      }); 
     }); 
    }); 
}); 
Cuestiones relacionadas