在预览Fancybox窗口中提交表单(有TinyMCE麻烦......)

时间:2012-01-11 13:47:15

标签: forms tinymce fancybox submit


我想在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()
        }
    });
})

这样做,但只有我点击两次che #preview anchor
似乎第一次点击“更新”textarea内容,第二次点击打开Fancybox

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

提前致谢...

1 个答案:

答案 0 :(得分:0)

您请求textarea内容,但内容似乎不是最新的。 这是因为tinymce编辑器内容不在textarea内部,而是在一个令人满意的iframe内。前textarea是隐藏的。要更新隐藏的textarea,您可以使用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();
        }
    });
})