【发布时间】:2009-04-16 15:53:31
【问题描述】:
我正在尝试使用 javascript 从文本区域捕获输入键。问题是,虽然我能够发现按下了“enter”键,但我无法避免它进入 textarea。我不希望在文本区域中显示回车键,即“\n”。
关于如何实现这一点有什么建议吗?
谢谢。
【问题讨论】:
标签: javascript
我正在尝试使用 javascript 从文本区域捕获输入键。问题是,虽然我能够发现按下了“enter”键,但我无法避免它进入 textarea。我不希望在文本区域中显示回车键,即“\n”。
关于如何实现这一点有什么建议吗?
谢谢。
【问题讨论】:
标签: javascript
尝试将此函数设置为文本区域的 onKeyDown 事件:
例如:onkeydown="javascript:return fnIgnoreEnter(event);"
function fnIgnoreEnter(thisEvent) {
if (thisEvent.keyCode == 13) { // enter key
return false; // do nothing
}
}
【讨论】:
更新更简洁:使用event.key 而不是event.keyCode。 没有更多的任意数字代码!
function onEvent(event) {
if (event.key === "Enter") {
return false;
}
};
【讨论】:
.keyCode 已弃用。 event 和 key 不是
即使您阻止了输入按钮,他们仍然可以粘贴换行符。 这将阻止输入按钮,并删除无论如何进入的任何换行符和回车符(仅在 FF 上尝试过,并且对此进行了最少的考虑 - 它可能无法在 Safari 或 IE 上按原样工作)。
<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>
【讨论】: