【问题标题】:Tinymce disappears after ajax form submit in MVC partialview在 MVC 部分视图中提交 ajax 表单后 Tinymce 消失
【发布时间】:2014-12-11 10:05:36
【问题描述】:

我在 ASP.NET MVC 4 局部视图上有一个表单,列表的另一个局部视图也在这个局部视图上。我有一个 Tinymce 来保存一些笔记。

当我使用

保存表单时
Ajax.BeginForm(.... with AjaxOptions InsertionMode = InsertionMode.Replace

更新下面的列表。现在,当表单提交时,一切都很好,新记录也显示在列表中,但 Tinymce 编辑器消失了。

如果有人有任何想法请帮助我,将不胜感激。

【问题讨论】:

  • 您要替换tinymce 应用到的元素吗?
  • 我的初始化 tinymce 的代码位于一个单独的脚本文件中,该文件始终在主页上,就像在布局页面上一样
  • 是的,但您需要将tinymce 附加到元素(textarea)。提交表单时是否将 textarea 替换为新的 textarea
  • 实际上 ajax InsertionMode = InsertionMode.Replace 执行页面来重置部分视图 HTML DOM,因此在这种情况下我的 tinymce 不再是编辑器,我希望当 ajax 刷新我的部分视图时我拥有的 textarea再次成为 tinymce 编辑器。
  • 正如我所怀疑的,所以您需要将tinymce 重新附加到新元素

标签: jquery ajax asp.net-mvc forms tinymce


【解决方案1】:

Tinymce 不喜欢你重新初始化它。因此,您必须在再次加载之前将其删除。 使用:tinyMCE.remove() oncomplete 或者其他退出,下次会出现。

【讨论】:

    【解决方案2】:
    @using (Ajax.BeginForm("MyPage", new AjaxOptions { UpdateTargetId = "detail", OnBegin = "tinymce.execCommand('mceRemoveEditor', true, 'id-of-your-textarea-here');" }))
    

    然后在页面加载时,您需要:

    tinymce.execCommand('mceAddEditor', true, 'Text');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2016-02-07
      • 1970-01-01
      相关资源
      最近更新 更多