Welcome to the JavaScript feedback portal. We’re happy you’re here! If you have feedback on how to improve the JavaScript, we’d love to hear it!

  • Check out the features or bugs others have reported and vote on your favorites. Feedback will be prioritized based on popularity.
  • If you have feedback that’s not listed yet, submit your own.

Thanks for joining our community and helping improve Syncfusion products!


In order to reproduce this bug:
  1. move the cursor to the last position of a restricted area
  2. press in sequence like I did in video "del - del - enter - move cursor - del"
  3. notice that the document structure is broken and it is not possible to edit anything

In my code I wrote this work around:

this.container.documentEditor.keyDown = function (args: DocumentEditorKeyDownEventArgs) {

const documentEditor: DocumentEditor = args.source;

const selection: Selection = documentEditor.selection;

const nextWidget: ElementBox = (!!selection.start.paragraph.nextWidget && !!selection.start.paragraph.nextWidget.childWidgets[0] && !!selection.start.paragraph.nextWidget.childWidgets[0]['children'] && !!selection.start.paragraph.nextWidget.childWidgets[0]['children'][0]) ? selection.start.paragraph.nextWidget.childWidgets[0]['children'][0] : null;

const nextWidgetName: string = (!!nextWidget) ? nextWidget.constructor.name : null;


children: JSON.stringify(selection.start.currentWidget.children.reduce((acc: string[], child: ElementBox) => {


return acc;

}, [])),

actual: _this.ej2Document.getInline(selection.start),

isAtParagraphEnd: selection.start.isAtParagraphEnd


    let keyCode: number = args.event.which || args.event.keyCode;

    if (keyCode == 46) { //delete

        const nextElementToDeleteIsRestrictedEndTag: boolean = nextWidgetName === 'EditRangeEndElementBox' && selection.start.isAtParagraphEnd;

        const selectionInRestrictedEndTag: boolean = selection.start.currentWidget.children.length == 1 && selection.start.currentWidget.children[0].constructor.name === 'EditRangeEndElementBox';

        if (nextElementToDeleteIsRestrictedEndTag || selectionInRestrictedEndTag) {

console.log('You cannot delete here');

args.isHandled = true;