Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передача фокуса на поле формы (https://javascript.ru/forum/dom-window/13902-peredacha-fokusa-na-pole-formy.html)

Эдди 19.12.2010 19:53

Передача фокуса на поле формы
 
Элементарная штука, а не во всех браузерах работает почему-то?
Что не так делаю?

Надо при клике на картинке передать фокус в определенное поле формы.Работает в Мозилле, Кроме, Сафари.
А IE8 и Опера НЕ РАБОТАЕТ.

Сюда надо перевести фокус:
<input ID="input_text" name="text" size="40">

Картинка:
<img onclick="form_focus()" align="absmiddle" class="hand" src="/img/button_new.png" width="11" height="13" alt="">

Функция:
function form_focus() {input_text.focus();}

Что не так?:-E

Vulkan 19.12.2010 20:49

Функция:
function form_focus() {document.getElementById('input_text').focus();}

Эдди 19.12.2010 20:54

Цитата:

Сообщение от Vulkan (Сообщение 84467)
Функция:
function form_focus() {dcument.getElementById('input_text').focus();}

Вау!!!:victory:

Спасибо. Все ОК. Я несилен в js. Php юзаю.

x-yuri 19.12.2010 21:07

если ты так не любишь писать document.getElementById напиши один раз такую функцию
function $( id ){
    return   typeof id == 'string'   ? document.getElementById(id)   : id;
}

и используй ее

Эдди 19.12.2010 21:24

Цитата:

Сообщение от x-yuri (Сообщение 84473)
если ты так не любишь писать document.getElementById напиши один раз такую функцию
function $( id ){
    return   typeof id == 'string'   ? document.getElementById(id)   : id;
}

и используй ее

Уже начинаю въезжать. Спсб.

Эдди 06.01.2011 13:35

Ребята. Объясните еще одну вещь.

А что, если вместо getDocumentById использовать all? Ведь работает.

document.all('input_text').focus

Столько разных вариантов в js, что если им заниматься от случая к случаю, трудно запомнить.
Тогда как document.all, вроде как, применим в большинстве случаев.

Есть какие подводные камни? help, please:)

--
А еще работает так:
eval('input_text.focus')

Ну и зачем такое многообразие:blink:

x-yuri 06.01.2011 17:49

document.all не работает в firefox

по поводу eval... ты читал, что он делает? Ты хочешь получить доступ к элементу страницы. Какое отношение имеет "выполнение js-кода" к "получению доступа к элементу страницы"?

Эдди 06.01.2011 17:53

Насчет eval согласен. Некрасиво это.

all работает в моей (последней) версии - Firefox 3.6.13. И у других современных браузерах.

Хотя не у всех есть последние версии. Значит getElementById = на настоящее время наилучший вариант.

Убедил!!!:)

x-yuri 06.01.2011 20:37

я говорил только про firefox. Этот код работает?
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        alert(document.all);
    </script>
</body>
</html>


p.s. в firefox оно работает только в режиме совместимости (quirks mode)

Эдди 06.01.2011 21:00

Вот результат в Firefox. Окно алерт не выведено.
02 03 04 05 06 07 08 11 12
В других браузерах точно так же.


Часовой пояс GMT +3, время: 07:21.