2014-04-26 32 views
1

我有一个像excel一样的可编辑表格,而且我正在使用keydown处理切换到下一个单元格。如何知道脱字符是否在textarea的最后一个字符中?

比方说,我有以下细胞与插入符号白标明:

This is a text| 

在插入符上面的例子中驻留在最后一个字符,因此,如果键盘上的用户按右键我需要切换细胞编辑器下一个细胞。

我的问题是如何知道插入符号是否位于keydown事件处理函数的textarea中的最后一个字符处?

+0

可能重复[插入textarea中的位置,以字符开头](http://stackoverflow.com/questions/263743/caret-position-in-textarea-in-characters-from-the-start) –

+0

你的例子中没有脱口秀。可能你是指管道?此外,我不确定2013年,但对于以前版本的Excel,单元格(或范围对象)没有keydown事件。这些事件仅适用于表单和表单控件。 –

+0

你是不是这个意思? http://jsfiddle.net/8Ayrd/32/ – lifetimes

回答

0

当你总是要被检查的最后一个字符,你可以抓住每​​的textareavaluelength财产和与文本区域的selectionEnd属性比较length

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 here


selectionEnd仅作为IE9 +的使用。要在旧版浏览器中实现此功能,可能需要使用this shim

相关问题