这是一个例子:
$(function() {
$('#test').change(function() {
$('#length').html($('#test').val().length)
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id=test maxlength=10></textarea>
length = <span id=length>0</span>
用行填充文本区域(一行一个字符)直到浏览器允许。 完成后留下textarea,js代码也会计算字符。
所以在我的情况下,在 chrome 阻止我之前我只能输入 7 个字符(包括空格)。虽然 maxlength 属性的值为 10:
最佳答案
以下是如何让您的 javascript 代码匹配浏览器认为在文本区域中的字符数量:
$(function () {
$('#test').keyup(function () {
var x = $('#test').val();
var newLines = x.match(/(\r\n|\n|\r)/g);
var addition = 0;
if (newLines != null) {
addition = newLines.length;
}
$('#length').html(x.length + addition);
})
})
基本上,您只需计算文本框中的换行符总数,并将每个换行符的字符数加 1。
关于javascript - Chrome 使用 maxlength 属性计算文本区域中的字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10030921/