2011-11-09 89 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。 –