今天使用KindEditor編輯器時需要涉及到一個頁面使用兩個編輯器的問題,剛開始,我直接在添加和上面一樣性質的程式碼,效果是出來了。但是提交的時候下面的那個值總是將上面的那個值覆蓋了,我感覺這問題應該不大,於是經過一番搗鼓,最終實現效果,這是我個人總結的心得,希望大家一起學習,共同進步!
以下是操作步驟:
1.宣告一個editor陣列:
var editor = new Array();
2.將先前的編輯器顯示行程式碼:
KindEditor.ready(function(K) { window.editor = K.create('#content', defaultEditorOptions); });
變成一個索引陣列形式的程式碼:
KindEditor.ready(function(K) { window.editor[0] = K.create('#content', defaultEditorOptions); window.editor[1] = K.create('#ycontent', defaultEditorOptions); });
這樣,KindEditor編輯器的效果圖便會顯示出來:
3.傳遞KindEditor所填寫的相關資料:
之前一個KindEditor編輯器的傳遞方式是這樣的:
<script> $("#submitBtn").on('click', function(event) { //编辑器中的内容异步提交 editor.sync(); event.preventDefault(); var params = $("form").serializeArray(); sendRequest('{:U("doEdit")}', params, function(data) { if (data.status == 1) { simpleSwal(data.info, '', 1, function() { jumpCurrentFrame(); }); } else { simpleSwal(data.info, '', 2); } }); }); <script>
我們需要將上述程式碼部分改為如下我們的正確傳值方式:
$("#submitBtn").on('click', function(event) { //编辑器中的内容异步提交 editor[0].sync(); editor[1].sync();//需要注意的是,这里面的索引数值是需要和变为一个索引数组形式的代码索引值一致,即键值一样多!!! event.preventDefault(); var params = $("form").serializeArray(); sendRequest('{:U("doEdit")}', params, function(data) { if (data.status == 1) { simpleSwal(data.info, '', 1, function() { jumpCurrentFrame(); }); } else { simpleSwal(data.info, '', 2); } }); });
這樣,我們就可以在伺服器端進行對應值的接收和校驗了。
下面把完整的程式碼貼下,需要的小夥伴可以看下:
<script> // 点击提交 $("#submitBtn").on('click', function(event) { //编辑器中的内容异步提交 editor[0].sync(); editor[1].sync(); event.preventDefault(); var params = $("form").serializeArray(); sendRequest('{:U("doEdit")}', params, function(data) { if (data.status == 1) { simpleSwal(data.info, '', 1, function() { jumpCurrentFrame(); }); } else { simpleSwal(data.info, '', 2); } }); }); </script> <!-- 编辑器插件 --> <script charset="utf-8" src="__PUBLIC__/lib/js/plugins/kindeditor/kindeditor.js"></script> <script charset="utf-8" src="__PUBLIC__/lib/js/plugins/kindeditor/lang/zh_CN.js"></script> <!-- 为避免kindeditor获取目录时出错,路径引入都避开base设置,采用根路径 --> <!-- uploadJson等的路径默认是PHP的,可以不用配置。 --> <!-- 但是若配置,则其相对路径起始是主窗口URL或者base,不是kindeditor自身的basePath --> <script> var editor = Array(); var defaultEditorOptions = { width: '100%', resizeType: 1, items: [ 'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/', 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage', '|', 'table', 'hr', 'emoticons', 'pagebreak', 'anchor', 'link', 'unlink', '|', 'about' ], uploadJson: '{:U("imgUpload",array("f"=>"imgFile"))}', formatUploadUrl: false, // uploadJson: '__ROOT__/Public/lib/js/plugins/kindeditor/php/upload_json_extend.php', afterUpload: function(url) {} }; KindEditor.ready(function(K) { window.editor[0] = K.create('#content', defaultEditorOptions); window.editor[1] = K.create('#ycontent', defaultEditorOptions); }); </script>
以上是如何在一個頁面上使用多個KindEditor編輯器並將值傳遞到伺服器端的詳細內容。更多資訊請關注PHP中文網其他相關文章!