【问题标题】:Submit a form in a preview Fancybox window (with TinyMCE troubles...)在预览 Fancybox 窗口中提交表单(TinyMCE 问题...)
【发布时间】:2012-12-18 03:58:41
【问题描述】:


我想在Fancybox 窗口中提交一个表格用于预览;这看起来并不难,因为一个简单的

$('#preview').fancybox({
    ajax: {
        type: "POST",
        data: $('#form1').serialize()
    }
});

可以完成这项工作...
但事情从未如此简单,TinyMCE 编辑器(jQuery 版本)增加了麻烦
发现上面的代码并没有发送更新后的textarea内容(不知道为什么),所以对预览没用

我最终得到了这个:

$('#preview').click(function(e){
    e.preventDefault();
    $(this).fancybox({
        ajax: {
            type: "POST",
            data: $('#form1').serialize()
        }
    });
})

这样就可以了,但前提是我单击两次 #preview 锚
似乎第一次单击“更新”了 textarea 内容,第二次单击打开了 Fancybox

嗯,你有更好的解决方案吗?我四处搜索,但似乎没有“在预览花式框窗口中提交表单”...

提前谢谢...

【问题讨论】:

  • Ivan,一个小问题 - 你如何调用链接?我正在尝试传递数据,但我不能对 iframe 执行此操作,只能对新的空白页执行此操作。当我尝试传递到 iframe 时,出现错误“无法加载请求的内容。”
  • 嗨,kacper,这是一篇旧帖子,我不记得我是如何解决这个问题的,或者尝试了其他方法(我也不记得我正在处理的网站)......对不起

标签: forms tinymce fancybox submit


【解决方案1】:

您请求 textarea 内容,但内容似乎不是最新的。 这是因为 tinymce 编辑器内容不在 textarea 内,而是在 contenteditable iframe 内。以前的文本区域是隐藏的。要更新隐藏的文本区域,您可以使用 tinymce.triggerSave()

$('#preview').click(function(e){
    e.preventDefault();
    tinymce.triggerSave();
    $(this).fancybox({
        ajax: {
            type: "POST",
            data: $('#form1').serialize()
        }
    });
})

或直接从编辑器获取tinymce内容

$('#preview').click(function(e){
    e.preventDefault();
    $(this).fancybox({
        ajax: {
            type: "POST",
            data: tinymce.get('form1').getContent();
        }
    });
})

【讨论】:

  • 感谢您的回答,Thariama,但这些都不起作用;首先,我有“双击”问题(第二次点击时启动了fancybox),第二次,即使我删除了最后的“;”,我也没有fancybox,页面在self窗口中打开。 ..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多