jquery - 在bootstrap模态

时间:2017-05-15 12:54:42

标签: jquery tinymce

我正在使用laravel 5.4应用程序,其中包含了tinymce插件以添加内容。这工作正常。然后将此内容保存在数据库中并列在html表中,然后可以对其进行编辑或删除(正常结果)

问题是点击编辑按钮,模式会弹出,但带有tinymce内容的textarea是空白的。下面是处理这个位的jquery以及处理tinymce的函数:

$(function(){
    $('.edit-subchapter').on('click', function(){
        var id = $(this).attr("value");
        $.get('subchapters/edit/'+id, function(response){
           for (var i in response) 
            {
                console.log(response[i].content);
                $("#formEdit #content").val(response[i].content);
            }
        },'json');
    });
});

var editor_config = {
path_absolute : "{{URL::to('/')}}/",
selector      : "textarea",
plugins: [
  "advlist autolink lists link image charmap hr anchor pagebreak",
   "insertdatetime media nonbreaking save table contextmenu directionality"
],
menubar: false,
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media"
};

tinymce.init(editor_config);

奇怪的部分是我的console.log(response[i].content);正在从数据库返回数据,所以我知道该位正在工作

当问题传递给textarea时出现问题:$("#formEdit #content").val(response[i].content);,没有显示任何内容。所以这是我理解的最好的问题吗?可能是什么问题?

1 个答案:

答案 0 :(得分:0)

确定。我想到了。当在tinymce中设置一个值时,我们不使用html控件,因为tinymce在运行时替换了textarea。

所以不要这样:

$("#formEdit #content").val(response[i].content);

我们会有这个:

tinymce.get('content').setContent(response[i].content);

并且在编辑了tinymce中的值之后,捕获该值,而不是:

$("#formEdit #content").val();

我们将:

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

这里有一些不错的参考网站:

http://archive.tinymce.com/wiki.php/TinyMCE3x:How-to_load/save_with_Ajax_in_TinyMCE

https://forums.asp.net/t/1825756.aspx?Set+value+of+textarea+tinymce+in+jQuery+

希望这对有类似问题的人有所帮助