没有动态加载提交的更改

时间:2016-01-29 13:31:39

标签: jquery tinymce

我有一个带文本的div,当我点击它时,我加载了一个tinymce编辑器。 我的问题是,当我在编辑器中更改文本并提交时,更改就会消失。

我有一个脚本的解决方法,它会监听编辑器的键盘并将编辑器内容复制到一个隐藏的字段,但这不是最好的方法。 特别是我还必须听“粘贴”,“微小对话框的变化”等等......

这是我的代码

<script type="text/javascript">

$(document).ready(function() {

    $(".TinyLoadOnClick").click(function() {
        $("#TinyArea").show();
        $(this).hide();

        tinymce.init({
            selector: "textarea",
            plugins: ["advlist autolink lists link image charmap print preview anchor","searchreplace visualblocks code fullscreen","insertdatetime media table contextmenu paste"],
            toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
        });
    });
});
</script>

<form method="post" action="dump.php">

<div class="TinyLoadOnClick">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt 
</div>

<textarea id="TinyArea" style="display:none;" name="content">
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt 
</textarea>

这是一个小小提琴的代码 http://fiddle.tinymce.com/2ofaab/1

你能帮助我吗?

3 个答案:

答案 0 :(得分:1)

在提交之前在编辑器上使用方法getContent,将编辑器内容复制到隐藏字段。

var content = editor.getContent();

或者使用http://archive.tinymce.com/wiki.php/TinyMCE3x:How-to_load/save_with_Ajax_in_TinyMCE

中描述的AJAX发布

答案 1 :(得分:0)

在将内容发送到后端服务器之前调用

tinymce.get('content').save();

并且一切正常(textarea内容随编辑器内容更新)

答案 2 :(得分:0)

我用隐藏字段提到的解决方法解决了这个问题。 我把这个代码放到了我的tinyMCE.init上,但它确实有效。 @Pontus Ivarsson感谢您的提示。

setup: function(editor) {
    editor.on("change", function () {
        setTimeout(function () {
            $("#"+TextAreaID+"_hidden").val(editor.getContent());
        }, 100);
    });
},

@Thariama的回答对我来说似乎合乎逻辑,但没有用到