Reputation: 95930
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
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;
}
};
Upvotes: 5
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
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