javascript - 如果行没有换行符,是否可以知道我的光标是在文本区域的第一行还是最后一行?
问题描述
我想触发一个喜欢离开 textarea 的第一行或最后一行。问题是我不能使用换行符。因为文本可以在没有硬换行符的情况下换行。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form action="/action_page.php">
<textarea rows="2" cols="20" name="usrtxt" wrap="soft">
I'am only one line without line breaks. Look joe I don't break but I wrap.
</textarea>
</form>
</body>
</html>
解决方案
<!DOCTYPE html>
<html>
<body>
<form action="/action_page.php">
<textarea rows="2" cols="20" name="usrtxt" wrap="soft" onkeyup="getLineNumber(this, document.getElementById('lineNo'));" onmouseup="this.onkeyup();">I'am only one line without line breaks. Look joe I don't break but I wrap.</textarea>
</form>
<div id="lineNo">You are on linenumber</div>
<script>
function getLineNumber(textarea, indicator) {
indicator.innerHTML = textarea.value.substr(0, textarea.selectionStart).split("\n").length;
}
</script>
</body>
</html>