Javascript 在文本区域中按“回车”键不会';无法正确更改光标索引
在javascript中,我们可以通过使用文本输入元素的element.selectionStart或element.seletionnd属性来获取textarea元素中光标的“索引”。因此,当位于第0行(第一行)上时,包含40列和10行的文本区域的光标位置应为0-40。但是,当按下enter键时,光标位置不会相应地更新,该键会将光标移动到文本输入元素中的下一行。事实上,按enter键只会在文本区域中添加一个空格,从而使光标位置与按enter键之前的位置相同。为什么会这样?有没有办法达到将光标位置更新到下一行的预期效果 为了更好地解释我所说的内容,我加入了以下代码片段Javascript 在文本区域中按“回车”键不会';无法正确更改光标索引,javascript,html,reactjs,textarea,Javascript,Html,Reactjs,Textarea,在javascript中,我们可以通过使用文本输入元素的element.selectionStart或element.seletionnd属性来获取textarea元素中光标的“索引”。因此,当位于第0行(第一行)上时,包含40列和10行的文本区域的光标位置应为0-40。但是,当按下enter键时,光标位置不会相应地更新,该键会将光标移动到文本输入元素中的下一行。事实上,按enter键只会在文本区域中添加一个空格,从而使光标位置与按enter键之前的位置相同。为什么会这样?有没有办法达到将光标位
var input=document.getElementById(“PMCDefMsgtxt”);
input.addEventListener(“键控”,函数(事件){
//数字13是键盘上的“回车”键
如果(event.keyCode===13){
event.preventDefault();
//应将光标位置记录到控制台
console.log(输入.选择结束);
}
});代码>
JS-Bin
回车键实际上输入了一个换行符,因此它不会计算其余的列,而是只计算换行符
如果要计算每个enter
上的列数,必须定义一个变量,将每个enter
上的列数相加。换句话说,在事件侦听器中,当keyCode
等于13
时,必须将该数字添加到变量中,例如40-element.selectionEnd