Focus OnLoad = "document.form_id.form_field_id.focus ();" на iPhone - PullRequest
3 голосов
/ 11 марта 2009

Есть ли способ сфокусироваться на текстовом поле при загрузке страницы (на iphone)?

Я пытался:

OnLoad="document.form_id.form_field_id.focus();" 

на iPhone Simulator, но это не сработало.

Кто-нибудь знает, почему это не работает и если да, то есть ли обход?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2009

Лучше использовать стандартные способы доступа к формам и элементам управления:

document.forms.form_id.elements.form_field_id.focus();

(уведомление form и elements добавление).

или

document.forms['form_id'].elements['form_field_id'].focus();

если идентификаторы / имена элементов управления формы / формы имеют символы, которые не могут быть частью идентификаторов Javascript, например "|", "-", "." и т. д.

Короткие обозначения (как в вашем примере), хотя и широко поддерживаемые, на самом деле не стандартизированы, и обычно лучше придерживаться стандартных практик.

Я не уверен, в чем здесь проблема. Возможно, мобильный Safari не поддерживает программную настройку фокуса? Вы пытались вызвать фокус с небольшой задержкой?

window.setTimeout(function(){
  document.forms['form_id'].elements['form_field_id'].focus();
}, 100);
0 голосов
/ 11 марта 2009

Попробуйте

OnLoad="document.getElementById('form_field_id').focus()"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...