textareas中的内容设置为使用nicEdit不更新以反映用户更改

时间:2010-11-05 15:56:29

标签: jquery edit nicedit

因为我的英语水平低而接受我的道歉

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

感谢。


更新 在阅读this related article并在结束时发表评论并阅读其他文章时,我发现必须在提交表单之前使用此方式:

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

为此,我使用jquery选择任何textarea并调用.each() jquery函数。例如:

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

这对于事先创建的textarea来说很好。但我有一些通过jQuery动态创建的textarea,findEditor()上面的函数找不到那些,而不是为那些调用saveContent()

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

TNX

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

动态创建元素的基本答案是使用$('selector').on('click', function(...))或whathaveyou等动态绑定到触发操作,让function正文找到任何相关.nice-wrapper textarea s(通过合理的选择器)作为jquery对象$textareas,并在执行提交

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

然后可以使用一些方便的方法,如.serializeArray。显然,有许多不同的方法可以解决这个问题 - 例如,您可能希望绑定到表单的提交事件而不是点击按钮 - 但我认为很多(大多数?)明智的解决方案进入相同的一般类别。