代码之家  ›  专栏  ›  技术社区  ›  Ahmad Badpey

文本区域中的内容设置为使用nicEdit不更新以反映用户更改

  •  7
  • Ahmad Badpey  · 技术社区  · 14 年前

    因为我英语水平不高,请接受我的道歉

    我使用jQuery加载一个页面,并在该页面中使用nicEdit,然后使用jQuery将数据发布到另一个页面。但它只发送空值,而不是用户在编辑器中编写的内容(如果我为文本区域定义了默认值,它只发送默认值,而不是用户编写的文本)。问题是什么,解决办法是什么?

    谢谢。


    阅读后 this related article 在最后的评论和阅读其他文章之前,我发现在提交表单之前必须使用这种方式:

    nicEditors.findEditor('textarea_id').saveContent();
    

    .each() jquery函数。例如:

    $('textarea').each(function(){
       var IDOfThisTextArea =   $(this).attr('id');
       nicEditors.findEditor(IDOfThisTextArea).saveContent()
    });
    

    这对预先创建的文本区域很有用。但是我有一些通过jQuery动态创建的文本区域 findEditor() saveContent() 为了那些。

    对于这个问题你提供什么??????

    tnx公司

    2 回复  |  直到 13 年前
        1
  •  1
  •   Carl    12 年前

    动态创建元素的基本答案是使用 $('selector').on('click', function(...)) function 身体发现任何相关 .nice-wrapper textarea s(通过合理的选择器)作为jquery对象 $textareas

     $textareas.each(function(){ 
      nicEditors.findEditor(this.id).saveContent();
     });
    

    这样你就可以使用一些方便的方法,比如 .serializeArray . 显然,有很多不同的方法可以解决这个问题——例如,也许您希望绑定到表单的submit事件,而不是单击按钮——但是我认为有很多(大多数?)合理的解决方案也属于同一类。

        2
  •  3
  •   Gluip    13 年前

    在提交表单之前保存所有这样的实例怎么样

    $('input[type=submit]').bind('click', function () {
        for(var i=0;i<nicEditors.nicInstances.length;i++){
            nicEditors.nicInstances[i].saveContent();
        }
    });