Слово JQuery учитывается при разрыве строки пользовательского типа
У меня есть счетчики слов создать в jquery.
Однако если пользователь нажмет "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);
}
});
});
я просто узнаю, что Chrome считает неправильно символы в textarea
Chrome считает неправильно символы в текстовой области с атрибутом maxlength
3 ответа
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
Вы можете найти точную длину символа, как это (исключая любые пробелы и разрывы строк)
var length = $.trim($(this).val()).split(" ").join("").split('\n').join('').length;
демонстрация ----->
http://jsfiddle.net/DqYsN/1/
Вы можете заменить пробелы, прежде чем считать что-то вроде: .replace(/\s/,'')
Так что вместо:
$(this).val().length)
Ты сделаешь:
$(this).val().replace(/\s/,'').length)