Javascript 焦点输入框加载
如何在页面加载时将光标聚焦在特定的输入框上 是否可以保留初始文本值并将光标放在输入的末尾Javascript 焦点输入框加载,javascript,html,dom,xhtml,Javascript,Html,Dom,Xhtml,如何在页面加载时将光标聚焦在特定的输入框上 是否可以保留初始文本值并将光标放在输入的末尾 <input type="text" size="25" id="myinputbox" class="input-text" name="input2" value = "initial text" /> 你的问题分为两部分 1)如何将输入集中在页面加载上? 您只需将autofocus属性添加到输入中即可 <input id="myinputbox" type="text" auto
<input type="text" size="25" id="myinputbox" class="input-text" name="input2" value = "initial text" />
你的问题分为两部分 1)如何将输入集中在页面加载上? 您只需将
autofocus
属性添加到输入中即可
<input id="myinputbox" type="text" autofocus>
2)如何将光标放在输入文本的末尾?
这里是一个非jQuery解决方案,其中包含一些借用自的代码
下面是一个使用jQuery实现这一点的示例
<input type="text" autofocus>
<script>
$(function() {
$("[autofocus]").on("focus", function() {
if (this.setSelectionRange) {
var len = this.value.length * 2;
this.setSelectionRange(len, len);
} else {
this.value = this.value;
}
this.scrollTop = 999999;
}).focus();
});
</script>
$(函数(){
$(“[autofocus]”)。在(“focus”,function()上{
如果(此.setSelectionRange){
var len=this.value.length*2;
此.设置选择范围(len,len);
}否则{
this.value=this.value;
}
this.scrollTop=999999;
}).focus();
});
函数focusOnMyInputBox(){
document.getElementById(“myinputbox”).focus();
}
一种可移植的方法是使用自定义功能(处理浏览器差异),如
然后在
标记的末尾为onload
设置一个处理程序,正如jessegavin所写:
window.onload = function() {
document.getElementById("myinputbox").focus();
}
只是提醒一下——现在,您可以在不使用JavaScript的情况下使用HTML5来实现这一点,而浏览器支持它:
<input type="text" autofocus>
您可能希望从这一点开始,并使用JavaScript在其上构建,以便为较旧的浏览器提供一个后备方案。这对我来说很好:
$(document).ready(function() {
$('#id').focus();
});
<form name="f" action="/search">
<input name="q" onfocus="fff=1" />
</form>
fff将是一个全局变量,其名称完全不相关,其目的是停止泛型onload事件以强制该输入中的焦点
<body onload="if(!this.fff)document.f.q.focus();">
<!-- ... the rest of the page ... -->
</body>
From:如果由于某种原因无法添加到BODY标记,则可以在表单后添加:
<SCRIPT type="text/javascript">
document.yourFormName.yourFieldName.focus();
</SCRIPT>
document.yourFormName.yourFieldName.focus();
工作正常
window.onload = function() {
var input = document.getElementById("myinputbox").focus();
}
试试看:
[elem][n].style.visibility='visible';
[elem][n].focus();
[elem].filter(':visible').focus();
Javascript纯:
[elem][n].style.visibility='visible';
[elem][n].focus();
[elem].filter(':visible').focus();
Jquery:
[elem][n].style.visibility='visible';
[elem][n].focus();
[elem].filter(':visible').focus();
非常简单的单线解决方案:
<body onLoad="document.getElementById('myinputbox').focus();">
将其添加到js的顶部
var input = $('#myinputbox');
input.focus();
或html
<script>
var input = $('#myinputbox');
input.focus();
</script>
变量输入=$(“#myinputbox”);
input.focus();
很高兴知道,这是否已经将光标移动到了输入字段中的最后一个位置?我不认为@Codex73试图实现HTML5中占位符属性的功能。听起来他想让光标自动定位在当前输入值的末尾。你说得对,这不是一个完整的解决方案。但这确实解决了一些问题(onload autofocus和占位符文本)。请注意,从2019年1月起,iOS上的Safari不支持这一点:建议的第一个代码块实际上也将光标放在现有值的末尾,效果很好。我非常感谢您的帮助。这需要jQuery。是的,您需要包括jQuery库:)classic stackoverflow:)