7

由于我的英语水平低,请接受我的道歉

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

谢谢。


更新在阅读了这篇相关文章和最后的评论并阅读了我发现的其他文章后,在提交表单之前必须使用这种方式:

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

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

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

这适用于预先创建的 textarea。但是我有一些通过 jQuery 动态创建的文本区域,findEditor()上面的函数没有找到这些,也没有调用saveContent()这些。

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

tnx

4

2 回答 2

3

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

$('input[type=submit]').bind('click', function () {
    for(var i=0;i<nicEditors.nicInstances.length;i++){
        nicEditors.nicInstances[i].saveContent();
    }
});
于 2011-07-28T20:07:55.057 回答
1

动态创建元素的基本答案是使用类似的东西$('selector').on('click', function(...))或whathaveyou动态绑定到触发动作,让该function主体找到任何相关.nice-wrapper textarea的s(通过明智的选择器)作为jquery对象$textareas,并在执行提交之前

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

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

于 2012-01-26T17:49:58.890 回答