Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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
IE中带有表单中字段初始Javascript选择的选项卡顺序问题_Javascript_Html_Internet Explorer_Browser_Cross Browser - Fatal编程技术网

IE中带有表单中字段初始Javascript选择的选项卡顺序问题

IE中带有表单中字段初始Javascript选择的选项卡顺序问题,javascript,html,internet-explorer,browser,cross-browser,Javascript,Html,Internet Explorer,Browser,Cross Browser,我试图在html中实现以下行为:向用户显示一个包含多个文本字段的表单。这些字段用默认值填充,但在许多情况下,用户希望输入自己的值。加载页面时,会选择第一个字段中的值,因此用户可以通过简单地开始键入并切换到下一个字段来替换它,或者简单地将其保留并切换到下一个字段。以下是我所拥有的一个精简示例: <html> <body onload="document.getElementById('helloField').select()"> <form&

我试图在html中实现以下行为:向用户显示一个包含多个文本字段的表单。这些字段用默认值填充,但在许多情况下,用户希望输入自己的值。加载页面时,会选择第一个字段中的值,因此用户可以通过简单地开始键入并切换到下一个字段来替换它,或者简单地将其保留并切换到下一个字段。以下是我所拥有的一个精简示例:

<html>
    <body onload="document.getElementById('helloField').select()">
        <form>
            <input id="helloField" value="hello"/><br/>
            <input value="goodbye"/><br/>
            <input type="submit" value="Submit"/>
        </form>
    </body>
</html>



这在Chrome(我相信还有Firefox,但我这里没有)。在IE中,字段是按预期选择的,但当用户点击tab时,浏览器会将选项卡指向其地址栏,而不是“再见”字段。如果我用一个简单的焦点替换select,比如

<body onload="document.getElementById('helloField').focus()">

标签在所有浏览器中都可以,但这不是我想要的。我希望用户能够立即开始键入以替换默认值

有人有什么想法吗


谢谢。

尝试使用tabindex设置字段的选项卡顺序:

<html>
    <body onload="document.getElementById('helloField').select()">
        <form>
            <input id="helloField" value="hello" tabindex="1" /><br/>
            <input value="goodbye" tabindex="2" /><br/>
            <input type="submit" value="Submit" tabindex="3" />
        </form>
    </body>
</html>



聚焦,然后选择

也应考虑在输入的输入之后直接将代码放入脚本块中。如果页面上有一堆图像,document.onload可能会在很长一段时间后触发,而当onload触发并劫持焦点(使您删除框中的内容)时,您最不希望在输入框中键入内容


var hello=document.getElementById('helloField'); 你好,焦点(); hello.select();
<input id="helloField" value="hello"/><br/>
<script type="text/javascript">
    var hello= document.getElementById('helloField');
    hello.focus();
    hello.select();
</script>