如何知道插入符号是否在textarea的最后一个字符?

我有一个像excel的可编辑表,我正在做keydown处理切换到下一个单元格。

假设我有以下单元格:

This is a text| 

在上面的例子中,插入符号位于最后一个字符处,所以如果用户按下键盘上的右键,我需要将单元格编辑器切换到下一个单元格。

我的问题是,我怎么知道插入符号是在keydown事件处理程序textarea中的最后一个字符?

由于您总是要检查最后一个字符,所以您可以在每个keydown中获取textarea valuelength属性,并将length与textarea的selectionEnd属性进行比较:

selectionEnd – 指定或返回当前元素中选定文本的结束位置。

例:

 document.getElementById("textAreaIdHere").onkeydown = function(){ // Get length of textarea value var len = this.value.length; // If character entered is at the end of the textarea (therefore cursor) if(this.selectionEnd === len) { // Is at the end } } 

jsFiddle在这里


selectionEnd仅适用于IE9 +以上版本。 为了在旧版浏览器中实现这个function, 这个垫片可能是有用的。

Interesting Posts