2017-05-08 49 views
-1

假設用戶已經按下了輸入一個textarea,我想在JavaScript中做一些事情,當用戶刪除這個從textarea輸入字符。當用戶從textarea中刪除一個輸入字符時做些什麼

+2

請分享你嘗試過到現在。閱讀更多關於如何問精確和完美的問題:http://stackoverflow.com/help/how-to-ask –

+0

歡迎來到StackOverflow。請參考[tour](http://stackoverflow.com/tour)瀏覽並閱讀[幫助中心](http://stackoverflow.com/help),然後閱讀[如何提問] (http://stackoverflow.com/help/how-to-ask),[我應該避免問什麼類型的問題?](http://stackoverflow.com/help/dont-ask)並提供[MCVE:最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。如果周圍的人可以輕鬆閱讀和理解你的意思,或者是什麼問題,他們會更樂意幫助:) – Dwhitz

回答

0

這裏的東西,你可以開始:https://codepen.io/zvona/pen/GmyRgO

的核心思想是在代碼存儲換行符的量給一個變量,然後對現有的量比較行的新的金額用正則表達式打破。

然後我們檢查這兩個值是否相互不同。

檢查示例。如果您還有其他問題,請不要猶豫。

const TA = document.querySelector('#TA'); 
let existingLineBreaks = 0; 

TA.addEventListener('keyup', (evt) => { 
    const tgt = evt.target; 
    const matches = tgt.value.match(/\n/g); 
    const currentLineBreaks = (matches) ? matches.length : 0; 

    if (currentLineBreaks < existingLineBreaks) { 
    alert('A line break was removed'); 
    } 

    existingLineBreaks = currentLineBreaks; 
}, false); 
+0

謝謝!這爲我做了。 – hartleyterw

+0

@SpopovabgS很高興聽到它幫助你。我會很感激你接受這個答案;) – zvona

0

您可以使用 「的onkeyup」

<textarea onkeyup="jsfunction();"></textarea> 

這將運行 「jsfunction()」 每次你編輯的文字區域。

+0

哦,謝謝。我如何檢查他們何時刪除函數內的輸入字符? – hartleyterw

+0

您是否需要特別檢查是否有人刪除或輸入了字符? –

+0

是的。我想要做的事情基本上是讓每一次他們在textarea中新建一行時出現的東西,並且每次刪除新行/刪除一個輸入字符時都會有東西消失。我已經「讓它出現時,他們按下輸入」部分已經。 – hartleyterw

0

您可以通過比較keydown和keyup事件中textarea中的行數量來實現此目的。這是一個例子

$(function() { 
    var lineCount; 
    $("textarea").on("keydown", function (e) { 
     var text; 
     lineCount = $(this).val().split('\n').length; 
     console.debug(lineCount); 
    }); 
    $("textarea").on("keyup", function (e) { 
     var keyupLineCount; 
     keyupLineCount = $(this).val().split('\n').length; 
     if (keyupLineCount < lineCount) { 
     alert('deleted line(s)'); 
     } 
    }); 
    }); 

https://jsfiddle.net/karelbraeckman/0nc9ey3p/1/

相關問題