I am trying to read multi line user input on a content editable div, and I don't get the right number of line breaks when I read the input with contentEditableDiv.innerText
.
I tried textContent
, but it doesn't return any line break, while innerText
returns too many sometimes. innerHTML
doesn't seem appropriate since I don't want any HTML code, just text.
If my div
contains:
a
b
It returns "a↵b" (97 10 98
in the example)
But if my <div>
contains:
a
b
innerText
returns a↵↵↵b
(one too many ↵, 97 10 10 10 98
in the example)
var input = document.getElementById("input");
var button = document.getElementById("button");
var result = document.getElementById("result");
button.addEventListener("click", (event) => {
var charCodes = "";
for (var i = 0; i < input.innerText.length; ++i) {
charCodes += input.innerText.charCodeAt(i) + " ";
}
result.innerText = charCodes;
});
<div id="input" contenteditable="true" spellcheck="true" style="border:1px #000 solid"></div>
<button id="button">check</button>
<div id="result"></div>