Отправить форму в окне предварительного просмотра Fancybox (с проблемами TinyMCE ...) - PullRequest
0 голосов
/ 11 января 2012


Я хочу отправить форму в окне 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 anchor
Кажется, что первый щелчок «обновляет» содержимое текстовой области, а второй щелчок открывает Fancybox

Ну,у вас есть лучшие решения?Я погуглил, но, кажется, нет ничего для "отправить форму в окне предварительного просмотра" ...

Заранее спасибо ...

1 Ответ

0 голосов
/ 11 января 2012

Вы запрашиваете текстовое содержимое, но оно не выглядит актуальным.Это связано с тем, что содержимое редактора tinymce находится не внутри текстовой области, а внутри приемлемого 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();
        }
    });
})
...