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

发布于 2024-09-30 18:47:33 字数 926 浏览 5 评论 0原文

请接受我的歉意,因为我的英语水平较低

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

谢谢。


更新阅读这篇相关文章及其末尾的评论以及阅读我发现的其他文章在提交表单之前必须使用这种方式:

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

对于我使用 jquery 选择任何文本区域并调用 .each() jquery 函数。例如:

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

这对于预先创建的文本区域来说效果很好。但是我有一些通过 jQuery 动态创建的文本区域,上面的 findEditor() 函数没有找到这些文本区域,并且没有为它们调用 saveContent()

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

tnx

Accept my apologize because of my low English level

I use to load a page with jQuery and I use nicEdit in that page and I post datas to another page with jQuery. But it just send empty value instead of what user wrote in editor (if i define a default value for my text area, it just send the default value not the text wrote by user). What is the problem and what is the solution?

Thanks.


UPDATE After reading this related article and it's comments at end and reading other articles i found must use this way before submiting form :

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

For this i use jquery to select any textarea and call .each() jquery function. For example :

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

This work fine for textarea that created beforehand. But I have some textarea that created dynamically via jQuery that findEditor() function above didn't found those and not call saveContent() for those.

For this problem what you offer??????

tnx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

来日方长 2024-10-07 18:47:33

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

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

What about saving all instances like this before you submit the form

$('input[type=submit]').bind('click', function () {
    for(var i=0;i<nicEditors.nicInstances.length;i++){
        nicEditors.nicInstances[i].saveContent();
    }
});
孤君无依 2024-10-07 18:47:33

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

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

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

The basic answer for dynamically created elements is to use something like $('selector').on('click', function(...)) or whathaveyou to dynamically bind to the the triggering action, have that function body find any relevant .nice-wrapper textareas (via sensible selectors) as a jquery object $textareas, and prior to executing the submit

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

which will then let you use some of the convenience methods like .serializeArray. Obviously, there are many different ways to solve this problem - e.g., perhaps you want to bind to the submit event of the form instead of to a click on a button - but I'd think many (most?) of the sensible solutions fall into the same general category.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文