Javascript nicedit所见即所得编辑器+;字符数

Javascript nicedit所见即所得编辑器+;字符数,javascript,html,Javascript,Html,我在文本区域中使用nicedit来实现丰富的编辑器功能。 我还想在textarea的末尾添加字符计数器,以便用户在textarea中键入特定数量的字符。我使用上面的代码,编辑器工作得很好 <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> <script type="text/javascript">bkLib.onDomLoaded(ni

我在文本区域中使用nicedit来实现丰富的编辑器功能。 我还想在textarea的末尾添加字符计数器,以便用户在textarea中键入特定数量的字符。我使用上面的代码,编辑器工作得很好

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>

bkLib.ondomload(nicEditors.allTextAreas);

谢谢

那么,您只需要知道文本区域中的字符数

您可以通过textarea的值的length属性获得:
textarea.value.length

下面是一个例子:

<textarea onkeyup="console.log(this.value.length)"></textarea>

这是一个字符数检查。这不是万无一失的,但它会让你开始:

<textarea onkeyup="updateCounter(this)" onpropertychange="this.onkeyup()"></textarea>
<div id="limit"></div>

<script>

    var limit = document.getElementById("limit");

    function updateCounter(textarea) {

        var len = textarea.value.length;


        var max = 10;


        if(max - len < 0) {
            textarea.value = textarea.value.substring(0, max);
        } else {
            limit.innerHTML = max - len;
        }



    }
</script>

var limit=document.getElementById(“limit”);
函数更新计数器(文本区域){
var len=textarea.value.length;
var max=10;
如果(最大长度<0){
textarea.value=textarea.value.substring(0,最大值);
}否则{
limit.innerHTML=max-len;
}
}

另外,请记住堆栈溢出是一个程序员帮助站点。我们将帮助解决编码方面的问题,但我们不仅仅是为人们编写程序(有很多这样的网站)。

那么,您只需要知道文本区域中的字符数

您可以通过textarea的值的length属性获得:
textarea.value.length

下面是一个例子:

<textarea onkeyup="console.log(this.value.length)"></textarea>

这是一个字符数检查。这不是万无一失的,但它会让你开始:

<textarea onkeyup="updateCounter(this)" onpropertychange="this.onkeyup()"></textarea>
<div id="limit"></div>

<script>

    var limit = document.getElementById("limit");

    function updateCounter(textarea) {

        var len = textarea.value.length;


        var max = 10;


        if(max - len < 0) {
            textarea.value = textarea.value.substring(0, max);
        } else {
            limit.innerHTML = max - len;
        }



    }
</script>

var limit=document.getElementById(“limit”);
函数更新计数器(文本区域){
var len=textarea.value.length;
var max=10;
如果(最大长度<0){
textarea.value=textarea.value.substring(0,最大值);
}否则{
limit.innerHTML=max-len;
}
}

另外,请记住堆栈溢出是一个程序员帮助站点。我们将帮助解决编码问题,但我们不只是为人们编写程序(有很多这样的网站。)。

如果您想为NicEdit textarea提供一个动态字符计数器,那么您应该意识到NicEditor(以及大多数/所有所见即所得HTML编辑器)是一个可编辑的div,而div的内容仅在div失去焦点后添加到相关的textarea中。我发现简单地尝试动态计算textarea中的字符数是行不通的。也许我做错了什么。在任何情况下,我都可以使用动态NicEdit char计数器,如下所示:

  • 设置HTML页面以使用NicEdit:

    <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
    <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
    
    
    bkLib.ondomload(nicEditors.allTextAreas);
    
  • 添加对包含计数器函数的JavaScript文件的引用:

    <script type="text/javascript" language="JavaScript" src="nicCount.js"></script>
    
    
    
  • nicCount.js的内容包括:

    function nicCount(editor, ctrId, maxChars)  {
       // Count characters remaining in the given nicEditor (editor), and update the given counter (ctrId)
       counterObj = document.getElementById(ctrId);
       if(counterObj) {
          var content = editor.getContent();
          if(maxChars - content.length <= 0) {
              // if there are no characters remaining, display the negative count in red
             counterObj.innerHTML = "<font color='red'>"+ (maxChars - content.length) + "</font>"; 
          }
          else { // characters remaining
            counterObj.innerHTML = maxChars - content.length; 
          }
       }
    }
    
    函数nicCount(编辑器、ctrId、maxChars){
    //计算给定nicEditor(编辑器)中剩余的字符数,并更新给定计数器(ctrId)
    counterObj=document.getElementById(ctrId);
    如果(反对象){
    var content=editor.getContent();
    
    如果(maxChars-content.length如果您想要一个NicEdit文本区域的动态字符计数器,那么您应该意识到NicEditor(以及大多数/所有所见即所得HTML编辑器)是一个可编辑的div,该div的内容仅在该div失去焦点后添加到关联的textarea。我发现简单地尝试动态计算textarea中的字符是不起作用的。也许我做错了什么。在任何情况下,我确实得到了一个动态NicEdit字符计数器,如下所示:

    • 设置HTML页面以使用NicEdit:

      <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
      <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
      
      
      bkLib.ondomload(nicEditors.allTextAreas);
      
    • 添加对包含计数器函数的JavaScript文件的引用:

      <script type="text/javascript" language="JavaScript" src="nicCount.js"></script>
      
      
      
    • nicCount.js的内容包括:

      function nicCount(editor, ctrId, maxChars)  {
         // Count characters remaining in the given nicEditor (editor), and update the given counter (ctrId)
         counterObj = document.getElementById(ctrId);
         if(counterObj) {
            var content = editor.getContent();
            if(maxChars - content.length <= 0) {
                // if there are no characters remaining, display the negative count in red
               counterObj.innerHTML = "<font color='red'>"+ (maxChars - content.length) + "</font>"; 
            }
            else { // characters remaining
              counterObj.innerHTML = maxChars - content.length; 
            }
         }
      }
      
      函数nicCount(编辑器、ctrId、maxChars){
      //计算给定nicEditor(编辑器)中剩余的字符数,并更新给定计数器(ctrId)
      counterObj=document.getElementById(ctrId);
      如果(反对象){
      var content=editor.getContent();
      
      如果(maxChars-content.length也有这个问题,经过一些搜索后,我找到了这个解决方案:

      $('body').on('keyup keydown focus','.nicEdit-selected', function (event) { $('#chars_text').text($(this).html().replace(/<\/?[^>]+(>|$)/g, "").length)});
      
      $('body').on('keyup keydown focus','.nicEdit selected',函数(事件){$('chars_text').text($(this.html().replace(/]+(>|$)/g,”).length)});
      
      字符文本id可以放在靠近nicedit的任何位置 其他解决方案基于.text().length,nicEdit使用html(),这带来了另一个问题-字符数还包括nicEdit插入的标记,因此必须首先剥离它们


      希望能有所帮助。

      也有这个问题,经过一些搜索,我找到了这个解决方案:

      $('body').on('keyup keydown focus','.nicEdit-selected', function (event) { $('#chars_text').text($(this).html().replace(/<\/?[^>]+(>|$)/g, "").length)});
      
      $('body').on('keyup keydown focus','.nicEdit selected',函数(事件){$('chars_text').text($(this.html().replace(/]+(>|$)/g,”).length)});
      
      字符文本id可以放在靠近nicedit的任何位置 其他解决方案基于.text().length,nicEdit使用html(),这带来了另一个问题-字符数还包括nicEdit插入的标记,因此必须首先剥离它们


      希望有此帮助。

      是并在文本区域下打印…任何也添加一个限制,例如:作为用户类型剩余300个字符…299…等。是并在文本区域下打印…任何也添加一个限制,例如:作为用户类型剩余300个字符…299…等。