javascript - 文本区域计数字符未按需要工作

标签 javascript

我有简单的脚本字符计数器,但我不明白为什么它显示它是 5 或任何其他小于 10 的数字,作为剩余字符。它必须显示它剩余“0”个字符,而且如果我粘贴它也不计数一些文本进入文本区域。我该如何解决这个问题?

HTML 代码

<textarea name="" id="txtarea" cols="30" rows="10"></textarea>
<p id="demo"></p>

JS 代码

var txt = document.getElementById("txtarea");
txt.setAttribute("maxlength", 50)
var maxLength = 50;
var demo = document.getElementById("demo");
var checkLength = function(){
    if(txt.value.length < maxLength) {
        var result = demo.innerHTML =  " Character remaining: " + (maxLength-txt.value.length) 
    };  
};
setInterval(checkLength, 300);

最佳答案

问题是:if(txt.value.length < maxLength)

应该是:if(txt.value.length <= maxLength)

无论如何,我不会以时间间隔来执行此操作,而是在 keyDown 上执行此操作。事件。像这样的事情:

var txt = document.getElementById("txtarea");
txt.setAttribute("maxlength", 50)
var maxLength = 50;
var demo = document.getElementById("demo");
var checkLength = function(){
    if(txt.value.length <= maxLength) {
        var result = demo.innerHTML =  " Character remaining: " + (maxLength-txt.value.length) 
    };  
};
<textarea name="" id="txtarea" cols="30" onKeyDown="checkLength()" rows="10"></textarea>
<p id="demo"></p>

关于javascript - 文本区域计数字符未按需要工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35750495/

相关文章:

javascript - 优化刻度位置以最大限度地减少图表顶部浪费的空间

javascript - 将 iFrame 内的 Fancybox 扩展到外部

javascript - Ember 在组件内执行错误/多个操作

javascript - 使用 javascript 更快地选择元素的方法

javascript - 您能否保持一系列父元素的高度不变,同时调整其中一个具有单击的子元素的高度?

javascript - 为什么我的 ShardWorker 没有在 Firefox 中运行,而是在 Google Chrome 中运行

javascript - Aurelia 选择禁用

javascript - 在 Aurelia 中动态加载内容后执行函数

javascript - 在触摸设备上触发 mousedown 和 mouseup

javascript - 如何在 Node.js 中停止异步执行