js 取消回車事件

最近在寫一個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

相關文章
相關標籤/搜索