我想在表单提交中使用CKEditor 5 Inline或Balloon编辑器,但遇到了困难。
我可以使用经典编辑器使提交工作完美,但是Inline Editor阻止我在该字段中键入内容。
这是我的代码:
<script type="text/javascript">
InlineEditor.create( document.querySelector( '#ck' ) );
</script>
这是HTML:
<div class="form-group">
<label>Comment</label>
<textarea cols="80" rows="10" name="comment" class="form-control" id="ck">foo
</div>
在页面上,显示编辑器,但是我无法在Safari(Mac)上输入该编辑器。
我看起来这在CKEditor 4中是可能的,在5中可能吗?
不幸的是,InlineEditor
而BalloonEditor
不是要取代<textarea>
的元素。ClassicEditor
在这种情况下可以工作,因为它只是用其自己的容器替换了整个元素,但是其他编辑器则不是这种情况。
CKEditor 4是满足所有需求的一种解决方案。引擎盖下发生了很多事情。使用CKEditor 5,我们可以为您提供构建和API,但是集成需要由外部开发人员完成。我并不是说这永远不会改变,尽管这是目前的状况。
此外,目前,两个编辑器都不会<textarea>
在您键入时替换值。
如果要使用ClassicEditor
,则可能需要<textarea>
在表单提交时用编辑器数据替换的值。
const textarea = document.querySelector( '#ck' );
ClassicEditor
.create( textarea )
.then( editor => { window.editor = editor } );
document.getElementById( 'submit' ).onclick = () => {
textarea.value = editor.getData();
}
如果要使用InlineEditor
或BalloonEditor
,则需要使用<div>
而不是<textarea>
。您可以创建一个隐藏的输入字段,并以与上述类似的方式将其值设置为编辑器数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句