2014-11-14 9 views
0

У меня есть содержание редактируемой DIV и я написал пользовательскую функцию, чтобы получить количество символов, которое, как показано ниже:Содержания Количество редактируемых символов Проблема

var charCount = function (elem, event) { 
    var charBox = elem.find('.maxLengthCount'), 
     txtBox = elem.find('textarea'), 
     rte = elem.find('.textareaEditBox'), 
     maxLength = parseInt(txtBox.attr('maxLength')); 

    if(!rte.hasClass('placeholderText')) { 
     /* This is where the remaining characters are being counted */ 

     var remainingChars = maxLength - rte.prop('innerHTML').length; 

     charBox.html(remainingChars); 
     if (remainingChars < 0) { 
      charBox.parent('div').addClass('fntRed'); 
      rte.addClass('borderRed'); 
      txtBox.addClass('error'); 
     } else { 
      charBox.parent('div').removeClass('fntRed'); 
      rte.removeClass('borderRed'); 
      txtBox.removeClass('error'); 
     } 
    } else { 
     charBox.html(maxLength); 
    }   
} 

charCount(wrapper, null); 

editor.on('keyup', function(event) { 
    charCount($(this).closest('.field-wrapper'), event); 
}); 

ВОПРОС: Everytime I нажмите < или> счетчик гольца уменьшает на 4, каждый раз, когда я нажимаю пробел счетчик символ уменьшается на 6

ответ

0

при редактировании содержания contenteditable элементов некоторых символы трансформируются в их HTML ускользает:

"<" -> &#60; or &lt; (lesser than) 
">" -> &#62; or &gt; (greater than) 
" " -> &nbsp;  (Non-breaking space) 

Вам придется заменить эти символы своим исходным значением, чтобы правильно подсчитать количество символов в тексте. Почему вы не используете текстовую область для этой цели? С содержательными элементами вы получите больше неприятностей, например, вставки изображений или ссылок, текстовые поля предназначены только для текстов и не избегают символов, как в вашем случае.

0

Количество символов текста (или значение при условии, что это текстовое поле элемент), а не HTML в элементе:

var remainingChars = maxLength - rte.val().length; 
+0

я на самом деле нужно, чтобы получить количество символов включая HTML теги – prgrmr