我正在使用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);
,没有显示任何内容。所以这是我理解的最好的问题吗?可能是什么问题?
答案 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+
希望这对有类似问题的人有所帮助