2014-04-26 33 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

相關問題