2009-12-21 7 views
0

comment puis-je soumettre un formulaire sur entrée pressé pendant que je suis en tapant textarea ........ si j'appuie sur enter il ne fait que casser une ligne mais ne soumet pas le formulaire.en soumettant un formulaire de textarea

+10

Ceci est un comportement techniquement inattendu. Les gens s'attendent à voir une ligne retour quand ils appuient sur entrer à partir d'une zone de texte. Je vous encouragerais à repenser ce que vous faites. – Sampson

+0

D'accord avec Jonathan, vous pouvez, cependant, soumettre le formulaire si elles frappent Ctrl + Entrée ou un autre modificateur. Outlook fait juste cela pour envoyer des emails, vous avertissant la première fois que vous utilisez ce raccourci. –

Répondre

5

Essayez <textarea onkeypress="handleKeyEvent(event);">

function handleKeyEvent(e) { 
    var charCode; 

    if (e && e.which) { 
     charCode = e.which; 
    } else if (window.event) { 
     e = window.event; 
     charCode = e.keyCode; 
    } 

    if (charCode == 13) { 
     document.getElementById("yourForm").submit(); 
    } 
} 

Mais je déconseille une telle chose, ou au moins assurez-vous que les utilisateurs savent ce qui va se passer quand ils appuient sur entrer. En général, ils s'attendent à un saut de ligne.

+0

+1 pour ne pas le faire de cette façon. – ceejayoz

1

Vous devez utiliser JavaScript. Schématiquement:

Vous pouvez également utiliser <input type="text"> à la place de <textarea>.

0

De http://jennifermadden.com/javascript/stringEnterKeyDetector.html

Utilisez la fonction javascript:

function checkEnter(e) { 
    //if which property of event object is supported (NN4) 
    if(e && e.which) { 
    //character code is contained in NN4's which property 
    characterCode = e.which; 
    } 
    else { 
    e = event; 
    //character code is contained in IE's keyCode property 
    characterCode = e.keyCode; 
    } 

    //if generated character code is equal to ascii 13 (if enter key) 
    if(characterCode == 13) { 
    //submit the form 
    document.forms[0].submit(); 
    return false; 
    } 
    else { 
    return true; 
    } 
} 

Et puis utilisez ce qui suit sur votre textarea:

<textarea onKeyPress="checkEnter(event)"> 
Questions connexes