2009-12-21 81 views
0

我怎样才能提交输入按下,而我amm键入textarea ........如果我打入输入它只打破了一条线,但不提交表格。从textarea提交表格

+10

这在技术上是意想不到的行为。当他们按下textarea中的输入时,人们希望看到一个线路回报。我鼓励你重新考虑你在做什么。 – Sampson 2009-12-21 17:40:43

+0

同意乔纳森,但是,如果他们按Ctrl + Enter或其他修饰符,则可以提交表单。 Outlook只会发送电子邮件,第一次使用该快捷方式时会提醒您。 – 2009-12-21 19:26:33

回答

5

尝试<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(); 
    } 
} 

但是我建议不要这样的事情,或者至少确保用户知道按下回车键后会发生什么。通常他们期望换行。

+0

+1不这样做。 – ceejayoz 2009-12-21 18:02:55

1

您需要使用JavaScript。粗略地说:

另外,使用<input type="text">代替<textarea>

0

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

使用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; 
    } 
} 

然后使用您的textarea以下几点:

<textarea onKeyPress="checkEnter(event)">