javascript - Chrome 使用 maxlength 属性计算文本区域中的字符错误

标签 javascript html google-chrome textarea maxlength

这是一个例子:

$(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:

imgur

最佳答案

以下是如何让您的 javascript 代码匹配浏览器认为在文本区域中的字符数量:

http://jsfiddle.net/FjXgA/53/

$(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/

相关文章:

javascript - 使用来自 ajax 或 jquery.get() 的数据打印 div

javascript - 使用node或express返回json格式的正确方法

python - 如何将选择(点击)写入文件

html - 使用 css linear-gradient 创建一条虚线对 Angular 线

javascript - 在 xdsoft datetimepicker 中突出显示日期/范围

javascript - 我们如何使用 jQuery Expander 插件根据行数而不是字符来展开/折叠?

html - 内联列表被悬停效果破坏

javascript - 将数据从页面发送到 Chrome 扩展程序

c++ - Qt/OSX WebSocket 打开握手超时

jquery - 选择选项中的文本对齐方式