因为我的英语水平低而接受我的道歉
我用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
答案 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
。显然,有许多不同的方法可以解决这个问题 - 例如,您可能希望绑定到表单的提交事件而不是点击按钮 - 但我认为很多(大多数?)明智的解决方案进入相同的一般类别。