- Home
- Forum
- ASP.NET Core - EJ 2
- Set cursor to end of text in RichTextEditor
Set cursor to end of text in RichTextEditor
I have a Rich Text Editor on my page. What is the best way to call a Javascript function to set the focus of the Rich Text Editor, and place the cursor at the end of the text?
SIGN IN To post a reply.
1 Reply
PM
Pandiyaraj Muniyandi
Syncfusion Team
December 17, 2019 12:30 PM UTC
Hi Brian,
Greetings from Syncfusion support.
We can set focus into RichTextEditor component by calling focusIn() public method with a component instance on the script section as follows
|
<script>
document.getElementById('btnFocus').addEventListener('click', function () {
var rteObj = document.getElementById('defaultRTE').ej2_instances[0]; // Take component instance
rteObj.focusIn(); // Public method to set focus
});
</script>
|
By executing following logic on external button click action, we can set a cursor position into the end of the text without calling a focusIn() method.
|
<script>
document.getElementById('btnFocus').addEventListener('click', function () {
// To find last direct childnode
var editEleLastNode = document.querySelector('.e-richtexteditor .e-content').lastChild;
// Find the all text node from editor element
var textNodes = getTextNodesUnder(document, editEleLastNode);
// Last textnode, where we going to set a cursor
var lastTextNode = textNodes[textNodes.length - 1];
var selectioncursor = new ej.richtexteditor.NodeSelection();
var range = document.createRange();
// to set the range
range.setStart(lastTextNode, 1);
// to set the cursor
selectioncursor.setRange(document, range);
});
// Find the all text node from given node
function getTextNodesUnder(document, node) {
var nodes = [];
for (node = node.firstChild; node; node = node.nextSibling) {
if (node.nodeType === 3) {
nodes.push(node);
}
else {
nodes = nodes.concat(getTextNodesUnder(document, node));
}
}
return nodes;
}
</script>
|
We have prepared sample for your reference, get it from below link
In the above sample, we have done the following things
- On external button click action, we get the last direct child node of the editor element and it passed to getTextNodesUnder() method to find all text node elements.
- The selection range created with the last text node element
- Finally, range set and cursor placed at the end of the editor.
If you need any further assistance on this, kindly revert to us.
Regards,
Pandiyaraj
SIGN IN To post a reply.
- 1 Reply
- 2 Participants
-
BR Brian Rutter
- Dec 16, 2019 03:51 PM UTC
- Dec 17, 2019 12:30 PM UTC