2017-02-22 5 views
0

Im, используя крошечный MCE по плану подсчета символов. По большей части он работает, но у него есть один недостаток в том, что он набирает все следующие символы, когда вы нажимаете клавишу возврата.Замените HTML, который имеет атрибут данных

<p><br data-mce-bogus="1"></p> 

Но когда это сохраняется в базе данных он сохраняет его как

<p>&nbsp;</p> 

который полностью нормально. Проблема заключается в проверке, вход ограничивается 5000 символами, и каждый возврат считается 30 символом, который выдает счет проверки. то есть его высказывание насчитывает более 5000 символов, когда на самом деле нет.

Проверка выполняется на стороне клиента, которая проверяет количество символов перед отправкой формы.

До сих пор я пытался

var decodedStripped = decoded.replace('data-mce-bogus="1"', ' /').trim(); 

Но не кажется, что полоса ненужного атрибута данных.

Это необходимо для проверки.

ответ

0

Я пошел другим путем с этим. Вместо этого

var decodedStripped = decoded.replace('data-mce-bogus="1"', ' /').trim(); 

Я подсчитывал, сколько раз данных MCE-поддельный = «1» подстрока произошла в общей строке. Затем я использовал это значение встречаемости наряду с разностью количества символов между <p><br data-mce-bogus="1"></p> и <p>&nbsp;</p>

, которые приводят к

self.getCount = function() { 
     var tx = editor.getContent({ format: 'raw' }); 

     var tcLength = tx.length; 

     var noOfReturns = occurrences(tx, 'data-mce-bogus="1"', false); 

     var cleanLength = tcLength - (17 * noOfReturns); 

     return cleanLength; 
    }; 

Это позволило мне иметь правильное количество, так что правильно проверяет на стороне клиента.

Смежные вопросы