簡體   English   中英

輸入按鍵后清除textarea輸入

[英]Clear textarea input after enter key press

我正在使用JavaScript創建一些聊天應用程序,允許用戶在按下回車鍵后發送消息

window.onkeydown=function(event){
    if(event.keyCode==13){
        sendNew();
    }
}

並在sendNew()函數中;

var msg=document.getElementById('txt').value.toString().trim();
    if(msg!=="") {
    //send message        
    document.getElementById('txt').value = "";
    }

當textarea處於onfocus時按Enter鍵時,文本被清除但似乎插入一個新行字符,光標將轉到textarea中的下一行。

我怎樣才能擺脫這個並擁有一個完全空的textarea?

您需要做的是在按Enter鍵時取消瀏覽器的默認行為(您必須阻止瀏覽器添加新行)。

解決方案:使用event.preventDefault() 文檔: https//developer.mozilla.org/en/docs/Web/API/Event/preventDefault

試試這段代碼:

window.onkeydown=function(event){
    if(event.keyCode==13){
        sendNew();
        if(event.preventDefault) event.preventDefault(); // This should fix it
        return false; // Just a workaround for old browsers
    }
}

一些開發人員忘記了event.preventDefault並寫了return false 這是一個不好的做法,我建議你使用新方法。

那是因為enter鍵的默認行為是插入一個新行。 要防止這種情況發生,請從keydown事件處理程序return false

window.onkeydown=function(event){
    if(event.keyCode==13){
        sendNew();
        return false; // prevent default behavior if ENTER key
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM