如何使用JavaScript确定光标位置是否在textarea中已定义行的开头?
答案 0 :(得分:1)
使用此处提供的答案:
Caret position in textarea, in characters from the start
您可以获取文本中光标位置的偏移量。完成后,您可以计算偏移前<textarea>
文本中的换行符,以确定您所在的行。如果偏移量刚好在换行符之后,那么您就在行的开头。使用这两种方法,您应该能够确定您是否处于特定行的开头。例如:
var offset = getCaret('mytextarea');
var text = document.getElementById('mytextarea').value;
var line_number = 1;
var i;
for ( i = 0; i < offset; i++ ) {
if ( text[i] == '\n' ) {
line_number++;
}
}
if ( !i || text[i-1] == '\n' ) {
// You're at the start of a line
}
注意:IE也可能使用回车符(\ r \ n),因此您可能需要考虑它们。
答案 1 :(得分:0)
您可以使用一项或多项on事件:onchange
,onkeyup
,onkeydown
,onkeypress
。
提供有关总体目标的更多详细信息。