我在jquery中创建了一个单词count。
但是如果用户按“Enter”(换行符),则会导致剩下1个字符。
例如maxlength=10
,如果用户输入 abcde , \ n , abc
总计仅变为9个字符,div
显示1个字符
$(document).ready(function(){
//Word Count
$('.word_count')
.on('input keyup keydown focus', function () {
var maxlength = $(this).attr('maxlength');
var value = $(this).val();
if(value.length > 0) {
$(this).nextAll('div').first().text((maxlength - $(this).val().length));
} else {
$(this).nextAll('div').first().text(maxlength);
}
});
});
我发现textarea中的Chrome计数字符错误
Chrome counts characters wrong in textarea with maxlength attribute
答案 0 :(得分:1)
你可以找到这样的确切字符长度(不包括任何空格和换行符)
var length = $.trim($(this).val()).split(" ").join("").split('\n').join('').length;
演示----->
http://jsfiddle.net/DqYsN/1/
答案 1 :(得分:1)
Chrome计数行中断为2个字符,将此一个放在代码中应该没问题。
var isChrome = window.chrome;
if(isChrome){var value = $(this).val().replace(/(\r\n|\n|\r)/g," ");}
else{ var value = $(this).val();}
" "
这会使长度为2个字符,因此它将与chrome中的textarea长度相匹配
答案 2 :(得分:0)
您可以使用以下内容替换空格:.replace(/\s/,'')
所以而不是:
$(this).val().length)
你这样做:
$(this).val().replace(/\s/,'').length)