2011-11-09 45 views
0

所以,我试图创建一个textarea,当我按下回车键时,它应该提交值然后清除它。javascript textarea输入密钥清除值

然而,提交部分没有问题,而是返回到文本框的开头,它有第二行。

document.getElementById("content").blur(); 
document.getElementById("content").value = ""; 
document.getElementById("content").value.replace(/[\n]/i, ''); 
document.getElementById("content").focus(); 

我试过清除我的textarea用id =内容,它仍然无法正常工作....

+0

与您的问题无关,但您不想一遍又一遍地说'document.getElementById(“content”)。相反说'var el = document.getElementById(“content”); el.value =“”; el.focus();'等等。 (尽管如果你在这个元素的事件处理程序中这样做,事件对象应该已经给你一个元素引用,根本不需要使用'document.getElementById()'。) – nnnnnn

+0

是的,我没有期望使用这么多行,但仍然不能工作,所以我只是复制它们来测试它。 –

回答

1

你应该在keydown事件返回false,如果实际新闻界进入。这样,原始事件(文本框的新行)将不会被触发。

0

忽略回车键的适当方法是防止默认行为,即将\n字符插入到字段中。

在您的事件回调中,只需调用事件对象的preventDefault方法,如e.preventDefault()。此外,请确保将其包含在一个条件中,以防止仅用于输入键的默认行为(即keyCode 13),如果这是您打算执行的操作。

+0

虽然preventDefault可以实现它,但IE8不支持preventDefault。 –