Javascript 粘贴超过maxlength的字符后,jQuery更新字符计数器
我有一个带有文本区域的表单,我试图阻止用户向其中粘贴超过1000个字符。我有一个div,它显示用户键入时剩下的字符数,这就是问题所在。我有粘贴部分工作,但我也试图设置字符计数器在同一时间 代码如下:Javascript 粘贴超过maxlength的字符后,jQuery更新字符计数器,javascript,jquery,Javascript,Jquery,我有一个带有文本区域的表单,我试图阻止用户向其中粘贴超过1000个字符。我有一个div,它显示用户键入时剩下的字符数,这就是问题所在。我有粘贴部分工作,但我也试图设置字符计数器在同一时间 代码如下: <textarea name="Note" id="Note" cols="80" rows="5" class="text-input shadow form-control" maxlength="1000"></textarea> <div id="NoteLe
<textarea name="Note" id="Note" cols="80" rows="5" class="text-input shadow form-control" maxlength="1000"></textarea>
<div id="NoteLength"></div>
<div>characters remaining.</div>
它会按预期截断文本,但不会将NoteLength div重置为如果我粘贴一大块文本,比如1500个字符。如果我粘贴200个字符的块,计数器工作正常。如果我在粘贴的最后一个字符上也使用了退格,那么它就可以工作,只是当我在一次粘贴中使用了退格,不幸的是,这是最有可能的用户场景 您可以使用输入事件捕获用户对输入值的任何更改
$("#NoteLength").text("1000");
//user is changing the input value, typing or pasting, all of it
$("#Note").on('input', function () {
if (this.value.length > 1000) {
this.value = this.value.substr(0, 1000);
}
$("#NoteLength").text(1000 - this.value.length);
});
可能的重复已经被讨论过了…当然,它并没有更新音符的长度。这在keyup事件处理程序的else子句中……是的,几乎所有内容都已经讨论过了。您发布的示例是弹出警报,而不是显示计数器,而这正是我一直坚持的部分,也许我们可以撤销当前流行的“重复”收费。如果你没有关于计数器的任何信息,请继续。Taplar,这部分实际上是工作的,这是用户打字时使用的。是的,这很好。谢谢塔普拉@不过我很好奇。我在标记中看到在输入元素上设置了maxlength。用户如何能够超越这一点?浏览器应该停止它们。浏览器正在停止它们,但我直到稍后才发现。我正在削减代码,以便处理计数器。
$("#NoteLength").text("1000");
//user is changing the input value, typing or pasting, all of it
$("#Note").on('input', function () {
if (this.value.length > 1000) {
this.value = this.value.substr(0, 1000);
}
$("#NoteLength").text(1000 - this.value.length);
});