【问题标题】:Don't write a character in a textarea after a onkeypress check在 onkeypress 检查后不要在 textarea 中写入字符
【发布时间】:2020-08-14 08:36:59
【问题描述】:

我有一个带有 onkeypress 函数调用的 textarea,我想检查行数是否超过 10:如果是,我不想写字符。功能检查后如何“停止”写入?

<textarea id="textAr" maxlength="350" rows="6" onkeypress="check(this)"></textarea>

    function checkLines(textArea){
            var text = textArea.value;
            var linesNumber = text.split("\n").length;

           // alert("number of rows is: " + linesNumber);

            if(linesNumber > 10){
                ???
            }
     }

【问题讨论】:

标签: javascript textarea


【解决方案1】:

要停止写入字符,您可以使用event.preventDefault() 方法。我们可以通过在元素中添加event listener 来代替 onkeypress 属性来做到这一点。

function checkLines(event){
    var text = this.value;
    var linesNumber = text.split("\n").length;

    // alert("number of rows is: " + linesNumber);

    if(linesNumber > 10){
        event.preventDefault();
    }
}
document.querySelector("#textAr").addEventListener("keypress", checkLines);

您也可以使用event.key 来获取被按下的键。这将只允许您使用回车键 ("Enter") 阻止新行。

    if(linesNumber > 10 && event.key == "Enter"){
        event.preventDefault();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多