Alec Smart
Alec Smart

Reputation: 95930

Javascript capture key

I am trying to catpure the enter key from a textarea using javascript. The problem is that although I am able to find out that the "enter" key was pressed, I am not unable to avoid it from coming in the textarea. I dont want the enter key i.e. "\n" to be displayed in the text area.

Any suggestions on how to achieve that?

Thank you.

Upvotes: 7

Views: 6450

Answers (3)

Gibolt
Gibolt

Reputation: 47207

More recent and much cleaner: use event.key instead of event.keyCode. No more arbitrary number codes!

function onEvent(event) {
    if (event.key === "Enter") {
        return false;
    }
};

Mozilla Docs

Supported Browsers

Upvotes: 5

wweicker
wweicker

Reputation: 4962

Try setting this function as the onKeyDown event for the text area:

ex: onkeydown="javascript:return fnIgnoreEnter(event);"

function fnIgnoreEnter(thisEvent) {
  if (thisEvent.keyCode == 13) { // enter key
    return false; // do nothing
  }
}

Upvotes: 9

Illandril
Illandril

Reputation: 656

Even if you block the enter button, they could still paste in newlines. This would prevent the enter button, and remove any newlines and carriage returns that got in anyway (only tried this on FF, and minimal thought put into this - it might not work on Safari or IE as-is).

<textarea rows="20" cols="50" onkeydown="return ignoreEnter(event);" onkeyup="noEnter(this);"></textarea>
<script type="text/javascript">
function ignoreEnter( event ) {
 return thisEvent.keyCode != 13; // enter key
}

function noEnter( e ) {
 e.value = e.value.replace(/\n/g,'');
 e.value = e.value.replace(/\r/g,'');
}
</script>

Upvotes: 0

Related Questions