Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically start/stop editing a contenteditable?

What kind of event do I need to fire to programmatically start or stop actually editing a contenteditable, like when the user focuses or blurs it? I tried .focus(), .click(), setting the selection to its content, but none of them seem to work.

EDIT: .focus() does work, just make sure the contenteditable node is already inserted to the document...

like image 655
thSoft Avatar asked Jan 24 '14 23:01

thSoft


2 Answers

You can use the trigger() method inside jQuery:

$('div[contenteditable="true"]').trigger('focus');

This will cause the caret to appear on page load, as per this jsFIddle demo.

like image 176
BenM Avatar answered Oct 25 '22 03:10

BenM


Maybe you are looking for disabled and readonly attributes.

HTML:
<input type="text" disabled="disabled" />

Javascript:
document.getElementsByTagName("div")[0].setAttribute("disabled", "disabled");

other option is

HTML:
<input type="text" readonly="readonly" />

Javascript:
document.getElementsByTagName("div")[0].setAttribute("readonly", "readonly");
like image 37
gral.pancho.villa Avatar answered Oct 25 '22 05:10

gral.pancho.villa