我在Chrome中测试了此代码,似乎存在涉及换行符的错误。在实际使用所有角色之前,我达到了最大长度。
var ta = document.getElementById('myText');
document.getElementById('max').innerHTML = ta.maxLength;
setInterval(function() {
document.getElementById('count').innerHTML = ta.value.length;
}, 250);
<textarea id="myText" maxlength="200" style="width:70%;height:130px">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
Type more words here...
</textarea>
<div>
Char Count <span id="count">0</span>/<span id="max">0</span>
</div>
如何准确获取textarea的字数?
更新1 我向Chromium团队报告了bug,似乎是低优先级。
更新2 该错误已合并到另一个bug。
更新3 该错误似乎已得到解决!
答案 0 :(得分:1)
似乎是一个WebKit错误(考虑filing)与将CR / LF对视为两个字符而不是一个字符相关。因为它通常是非关键性的,例如,如果允许197个字符而不是200个字符,那么可以忽略它。
但如果您愿意,可以尝试不断保存插入位置,将所有\r\n
替换为\n
,并在用户输入时恢复textarea中的插入位置。