最近在寫一個js小玩意兒,裏邊涉及到這樣一個功能:在textarea中編輯東西完成以後,敲回車,發送消息,清空textarea;
可是出現一個bug:敲回車後,textarea裏會殘餘一個換行符;
想來想去,應該是這個回車敲擊之後,清空textarea的方法調用以後,事件還在繼續,因而換行符被當作輸入,進入了textarea;
javascript
如何讓這個回車事件在清空textarea以後就取消呢?html
在網上找到這篇文章JS阻止事件冒泡,因而在代碼里加了一句java
obj.preventDefault();
就解決了;
demo以下:
spa
<html> <head> <script type="text/javascript"> function BindEnter(obj){ if(obj.keyCode == 13){ if (!obj.ctrlKey) { document.getElementById("ta").value=""; obj.preventDefault();//這句話能夠阻止回車事件冒泡;若是註釋掉這句話,那麼會有空格殘餘; } } } </script> </head> <body onkeydown="BindEnter(event)"> <textarea id="ta" rows="10" cols="30"> The cat was playing in the garden. </textarea> </body> </html>
今天看到一個帖子,發如今事件處理方法中直接return false就能阻止事件冒泡了...
.net