【发布时间】:2010-11-23 02:56:31
【问题描述】:
我找到了一些关于如何将光标放在文本末尾的文本区域的资源,但我无法找到一种简单的方法让它出现在开头。
我正在用一些文本预先填充文本区域,只是想让用户更轻松。
【问题讨论】:
标签: javascript prototype textarea
我找到了一些关于如何将光标放在文本末尾的文本区域的资源,但我无法找到一种简单的方法让它出现在开头。
我正在用一些文本预先填充文本区域,只是想让用户更轻松。
【问题讨论】:
标签: javascript prototype textarea
将你的文本区域的引用传递给这个 JS 函数。
function resetCursor(txtElement) {
if (txtElement.setSelectionRange) {
txtElement.focus();
txtElement.setSelectionRange(0, 0);
} else if (txtElement.createTextRange) {
var range = txtElement.createTextRange();
range.moveStart('character', 0);
range.select();
}
}
【讨论】:
根据您的需要,更简单的 Javascript 版本是:
document.querySelector("textarea").focus(); //set the focus - cursor at end
document.querySelector("textarea").setSelectionRange(0,0); // place cursor at start
您也不能只是将它们串在一起,以摆脱双重 querySelector - 不知道为什么。
【讨论】:
jQuery 方式:
$('textarea[name="mytextarea"]').focus().setSelectionRange(0,0);
【讨论】:
$('textarea[name="mytextarea"]').focus().get(0).setSelectionRange(0,0); ... 添加的 get(0) 是为了暴露 DOM 元素,因为 setSelectionRange() 是一种 DOM 方法而不是 jQuery 方法。
请在使用$(textareaSelector).val(val)后用于带有滚动的textarea
$(textareaSelector)[0].setSelectionRange(0, 0);
$(textareaSelector).focus();
【讨论】:
去掉标签之间的空格
像这样:
<textarea rows="5" cols="50" name="extra"></textarea>
【讨论】: