2013-05-15 3 views
0
window.onload = function() { 
       try{ 

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

       } 

      } 

В моей форме div id загружается, когда форма отправляется, и когда она отображается, я хочу сосредоточиться на ней. вышеуказанный код не работает в моем случае. Пожалуйста, помогите найти проблему с этим кодом.
jsfiddlejavascript фокус не работает при нагрузке

+1

Просто удалите теги сценария и используйте No wrap в вместо onload и используйте tabindex = 0 в div. – lifetimes

+0

вы пытаетесь сосредоточиться на div, которого вы не можете. вы можете сосредоточить внимание только на любом поле типа ввода, таком как текстовое поле, радио, флажок и т. д. –

+0

почему tabindex = 0 в div? – Hemc

ответ

0

Here's a working jsFiddle.


1. Дайте Диву вкладку индекс 0 (это означает, что заказан первым):

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

(Узнайте больше о недвижимости TabIndex.)

2. Снимайте <script> теги:

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

    }      
} 

3. Использование no wrap in <head> вместо onload.

2

Согласно вашему jsFiddle, #result является div. Вы не можете сосредоточиться на DIV так, как вы можете с элементом формы или ссылки, но вы можете перейти к той части страницы, используя следующий JavaScript вместо:

window.location.hash = '#result'; 
+0

Niet problemski. Рад был помочь. – Maloric

1

Вы не можете сфокусироваться на элементе div. Но вы можете использовать

window.location.hash = '#result'; 

для прокрутки сНу # результирующего элемента

0

Вы пытаетесь сосредоточиться на DIV, который по умолчанию не может быть поставлен на фокусировку с помощью сценария. Для этого вам нужно установить атрибут tabindex результата div. Вам нужно добавить атрибут tabindex и установить его значение в 0, а затем ваша функция document.getElementById().focus() будет работать

Также в вашей скрипке не допускается внутри блока javascript. Попробуйте это fiddle