在提交到php之前保存tinyMCE值

时间:2017-02-17 21:59:22

标签: javascript jquery ajax forms tinymce

我正在努力实现这一目标。它确实有效但我必须在存储tinyMCE值之前提交表单两次。

$("form#data").on('submit',function(e){
        e.preventDefault();
        tinymce.init({
            selector: "textarea",
            statusbar: false,
            setup: function (editor) {
                editor.on('change', function () {
                    editor.save();
                });
            }
            });

        var formData = new FormData($(this)[0]);

        $.ajax({
            url: 'includes/new_post.php',
            type: 'POST',
            data: formData,
            async: false,
            success: function (data) {
                alert(data)
            },
            cache: false,
            contentType: false,
            processData: false

        });

        return false;
    });

代码的Ajax部分完美地工作,只是形式像明智的其他形式,但tinyMCE文本区域不会在第一次提交。如果我单击按钮两次,那么它将保存请协助。

2 个答案:

答案 0 :(得分:0)

看起来你正在错误的地方进行初始化。

第一次提交表单时,tinymce会被初始化。相反,您应该在页面加载时初始化它。

答案 1 :(得分:0)

你应该这样做:

tinymce.init({
    selector: "textarea",
    statusbar: false,
    setup: function (editor) {
        editor.on('change', function () {
            editor.save();
        });
    }
});

$("form#data").on('submit',function(e){
    e.preventDefault();

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: 'includes/new_post.php',
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false

    });

    return false;
});