如何知道插入符号是否在textarea的最后一个字符?
我有一个像excel的可编辑表,我正在做keydown处理切换到下一个单元格。
假设我有以下单元格:
This is a text|
在上面的例子中,插入符号位于最后一个字符处,所以如果用户按下键盘上的右键,我需要将单元格编辑器切换到下一个单元格。
我的问题是,我怎么知道插入符号是在keydown事件处理程序textarea中的最后一个字符?
由于您总是要检查最后一个字符,所以您可以在每个keydown
中获取textarea
value
的length
属性,并将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, 这个垫片可能是有用的。