【问题标题】:capturing TinyMCE form textarea捕获 TinyMCE 表单 textarea
【发布时间】:2016-08-24 23:57:17
【问题描述】:

我一直无法获取 TinyMCE 文本区域的值,我就是无法从中获取值?

这是我的表格(哦,太简单了):

<div id="pow_form_container">
    <form id="pow_content_form">        
        <textarea name="pow_content" id="tiny" style="width:100%">
            <? echo $pow; ?>
        </textarea>
        <input type="hidden" id="pow" name="pow" />
    </form>
</div>

这是我用来托盘和获取编辑器内容的 JQuery

    save_pow: function (job_id) {
        var editor = tinymce.get("tiny"),content = editor.getContent();
        $.post('/jobs/save_pow/' + job_id, $('#pow_content_form').serialize(), function (response) {

            alert(content);

            if (response.status == 'ok') {
                tinymce.EditorManager.execCommand('mceRemoveEditor',true, "tiny");
                Common_UI.dialog_close('edit_pow_dialog');

            }
        });
    },  

但是发布的是:

pow_content=++++%09%09++++%09&pow=

这是什么鬼?

我尝试过类似的方法:

tinyMCE.triggerSave();

所以

save_pow: function (job_id) {
    tinyMCE.triggerSave();
    $.post('/jobs/save_pow/' + job_id, $('#pow_content_form').serialize(), function (response) {

        if (response.status == 'ok') {
            Common_UI.dialog_close('edit_pow_dialog');

        }
    });
},

但这并不能改变任何事情,怎么会这么难?有什么遗漏的吗?

我正在用它初始化 tinyMCE,因为文本编辑器位于 jquery UI 弹出对话框上,这是我可以让编辑器显示的唯一方法: edit_pow:函数(job_id){ $.get('/jobs/edit_pow/' + job_id, 函数(数据){

            Common_UI.dialog('edit_pow_dialog', 'Edit Programme of Works', data, {
                'Save': function () {
                    method.jobs.save_pow(job_id);
                }
            });
            tinyMCE.init({ selector:'#tiny' });

        });
    },

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    你可以通过getContent()获取编辑器的内容:

    var editor = tinymce.get("tiny"),
        content = editor.getContent();
    

    您还应该知道,如果不破坏任何以前的实例,您将无法重新初始化 tinyMCE(请参阅answer)。所以在 dialog_close 之前你应该删除 tinyMCE 实例:

    tinymce.EditorManager.execCommand('mceRemoveEditor',true, "tiny");
    

    【讨论】:

    • 在上面包含您的代码时出现以下错误:TypeError: tinyMCE.activeEditor is null var content = tinyMCE.activeEditor.getContent();
    • tinyMCE 是否已初始化
    • 您能否将您的 tinyMCE 初始化语句添加到问题中? tinyMCE.editors 属性的值是多少?
    • 您的代码似乎合法。在调用 method.jobs.save_pow() 函数之前,您应该检查 tinymce 对象的属性。
    • 好的,感谢您的帮助。我已经在上面实施了您的建议,并使用更新的代码编辑了问题。我仍然收到错误:TypeError: editor is null var editor = tinymce.get("tiny"),content = editor.getContent();
    猜你喜欢
    • 2013-01-01
    • 2012-07-07
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    相关资源
    最近更新 更多