Предел символов показывает оставшиеся символы в «отрицательных» числах - PullRequest
0 голосов
/ 06 мая 2019

Я использую tinyMCE версии 3, я использую текстовый редактор, который подсчитывает количество символов, оставшихся на лету при вводе.Так как атрибут maxLength не работает для tinyMCE3.Я жестко запрограммировал этот способ, но он учитывает и пустые символы

< script type = "text/javascript" >

  tinyMCE.init({
    mode: "textareas",
    theme: "advanced",
    editor_selector: "mceEditor",
    theme_advanced_statusbar_location: "bottom",
    theme_advanced_path: false,
    statusbar: true,
    setup: function(editor) {
      editor.onKeyUp.add(function(c) {
        //    var maxCount = document.getElementById(editor.id).maxLength;
        var maxCount = 10;
        console.log(editor.id);
        var txt = $(editor.getBody()).text();
        var txtLen = txt.length;
        var value = maxCount - (txtLen);
        $(tinyMCE.activeEditor.getContainer()).find("#" + editor.id + "_path_row").html("Remaining chars: " + (value));

        if (txtLen > maxCount) {
          editor.setContent("");
          tinyMCE.activeEditor.selection.setContent(txt.substring(0, maxCount));
          tinyMCE.activeEditor.focus();
        }
      });
    }

  }); <
/script>
<textarea id="1" class="mceEditor" cols="100" rows="7" wrap="" maxlength="10">test sample</textarea>

Подсчет отрицательных значений

Подсчет отрицательных чисел и установка пустого значения

и когда я вписываю 2 символа между ними, удаление последних двух символов есть какой-либо способ, которым я могу прекратить вводить после того, как он достигнет счетчика "0".

1 Ответ

2 голосов
/ 06 мая 2019

Я не уверен, что полностью понимаю вашу проблему, поскольку здесь происходит несколько вещей.

Отображение оставшихся символов как отрицательных

Я вижу, что с вашим кодом, если вы введете 11 символов, 11-й символ будет удален, но тогда оставшиеся символы показывают «-1» вместо «0». Это ваша жалоба? Причина, по которой это происходит, заключается в том, что вы обрезаете текстовое содержимое редактора до maxCount, но оставшееся значение символов было вычислено до того, как обрезка произойдет, поэтому оно все равно имеет значение maxCount - длина без ограничения. Вы можете легко исправить это несколькими способами, в том числе изменить это:

$(tinyMCE.activeEditor.getContainer()).find("#" + editor.id + "_path_row").html("Remaining chars: " + (value));

к этому:

$(tinyMCE.activeEditor.getContainer()).find("#" + editor.id + "_path_row").html("Remaining chars: " + (value > 0 ? value : 0));

Подсчет пустых символов

Если вы не хотите, чтобы какие-либо пустые символы были включены в число, используйте это:

var txtLen = txt.replace(/\s/g,"").length;

Если вы хотите обрезать только пустые символы с концов, используйте это:

var txtLen = txt.trim().length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...