2010-09-09 4 views
8

J'ai vu d'autres questions à ce sujet, mais aucune pour Prototype.Soumettre le formulaire lorsque la touche Entrée est appuyée avec Prototype javascript

J'ai un formulaire sans un bouton de soumission (utilise un lien stylé qui appelle du javascript). Quel est le meilleur moyen de détecter une touche d'entrée dans tous les champs de saisie et de soumettre le formulaire?

Merci!

+0

Je ne peux pas offrir de conseil spécifique à un prototype, mais avez-vous envisagé d'ajouter un bouton Soumettre puis de le masquer avec Prototype/JS? Ce n'est pas la réponse que vous voulez, mais elle se dégrade bien. –

Répondre

9

Voici un exemple du genre de chose que vous pouvez utiliser:

$('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

Il est le même que ci-dessus, mais n'a pas besoin de définir une fonction:

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

Avec Prototype:

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