可以使用TinyMCE和字符计数/限制器进行切换

时间:2011-07-01 13:16:43

标签: jquery tinymce character counter jeditable

我一整天都在努力解决这个问题,但没有快乐......你是我唯一的希望oni wan konobi!

我已经查看了TinyMCE的max_chars插件,如果TinyMCE是自己实现的,它可以正常工作。

Jeditable还具有使用自定义类型计算/限制字符的功能。见这里:http://www.appelsiini.net/projects/jeditable/custom.html如果它自己实现的话,这也很有效。

我需要使用Jeditable实现TinyMCE。这是我管理过的,效果很好。但为了做到这一点,必须有一个TinyMCE的自定义类型。

以下是我的代码:

$.editable.addInputType('mce', {
element : function(settings, original) {
    var textarea = $('<textarea id="'+$(original).attr("id")+'_mce"/>');
    if (settings.rows) {
       textarea.attr('rows', settings.rows);
    } else {
       textarea.height(settings.height);
    }
    if (settings.cols) {
       textarea.attr('cols', settings.cols);
    } else {
       textarea.width(settings.width);
    }
    $(this).append(textarea);
       return(textarea);
    },
    plugin : function(settings, original) {
       tinyMCE.execCommand("mceAddControl", true, $(original).attr("id")+'_mce');

       },
    submit : function(settings, original) {
       tinyMCE.triggerSave();
       tinyMCE.execCommand("mceRemoveControl", true, $(original).attr("id")+'_mce');
       },
    reset : function(settings, original) {
       tinyMCE.execCommand("mceRemoveControl", true, $(original).attr("id")+'_mce');
       original.reset();
}
});

以下是Jeditable字符计数器的代码:

$.editable.addInputType('charcounter', {
element : function(settings, original) {
    var textarea = $('<textarea />');
    if (settings.rows) {
        textarea.attr('rows', settings.rows);
    } else {
        textarea.height(settings.height);
    }
    if (settings.cols) {
        textarea.attr('cols', settings.cols);
    } else {
        textarea.width(settings.width);
    }
    $(this).append(textarea);
    return(textarea);
},
plugin : function(settings, original) {
    $('textarea', this).charCounter(settings.charcounter.characters,   settings.charcounter);
}
});

有没有让这两个人一起工作?在一个理想的世界里,我只能调用两种类型。我的主叫代码是:

$(function(){
   $(".editable_profbod").editable('save.asp?PageID=<%=PageID%>&SectionID=1',
    {
      type : 'mce',
  indicator : 'Saving...',
      tooltip : 'Click to edit...',
      name : 'note_text',
      submit : 'OK',
      cancel : 'Cancel',
      height : '100px',
  onblur: 'ignore',
  cssclass: 'editable'
   });

有没有办法合并这两种类型?我真的非常需要限制并显示字符数。理想情况下,我想使用可循环显示和限制计数的方式。

非常感谢, 戴夫

1 个答案:

答案 0 :(得分:1)

您可能对另一种解决方案持开放态度:您可以编写自己的插件来处理这个问题。这很简单。这是howto write a tinymce plugin的链接。 您需要做的就是使用onKeyDown获取内容并计算字符数。 根据值,您可以停止插入输入的字符。