0
window.onload = function() {
                 try{

                     document.getElementById('result').focus();
                 }catch(err){

                 }

             }

在我的表单中,当表单提交和显示我想专注于它时,会加载我的表单 div 结果 id。上面的代码在我的情况下不起作用。请帮我找出这段代码的问题。
jsfiddle

4

4 回答 4

2

根据您的 jsFiddle,#result 是一个 div。您不能像使用表单元素或链接那样真正关注 div,但您可以使用以下 javascript 跳转到页面的该部分:

window.location.hash = '#result';
于 2013-05-15T08:41:50.373 回答
1

You can not focus to a div element. But you can use

window.location.hash = '#result';

to scroll to div#result element

于 2013-05-15T08:47:22.493 回答
0

Here's a working jsFiddle.


1. Give the div a tab index of 0 (meaning it is ordered first):

<div class="result" tabindex="0" id="result">

(Find out more about the tabindex property here.)

2. Remove your <script> tags:

window.onload = function() {
    try{
        document.getElementById('result').focus();
    }catch(err){

    }                    
}

3. Use no wrap in <head> instead of onload.

于 2013-05-15T08:47:14.377 回答
0

您正试图专注于一个 div,默认情况下无法使用脚本将其聚焦。为此,您需要设置结果 div 的tabindex属性。您需要添加属性 tabindex 并将其值设置为 0 然后您的功能document.getElementById().focus()将起作用

在你的小提琴中也不允许在 javascript 块内。试试这个小提琴

于 2013-05-15T08:51:15.267 回答