Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 焦点输入框加载_Javascript_Html_Dom_Xhtml - Fatal编程技术网

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:)