За последние 24 часа нас посетили 17698 программистов и 1672 робота. Сейчас ищут 1726 программистов ...

Как фокус "программно установить" на текстовый инп

Тема в разделе "JavaScript и AJAX", создана пользователем Adamant, 21 окт 2008.

  1. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Не знаю, возможно ли такое...?
    Есть некая форма, юзер вбивает в текстовый инпут 6 символов и форма автосабмитится яваскриптом на эту же страницу т.е. action="", теперь суть траблы:
    Нужно чтобы после каждой загрузке страницы этот текстовый инпут был "текущим", т.е. чтобы юзер предварительно не переходил (курсором мышки или tab-ом) в это поле для следующего ввода данных при каждой перезагрузке этой страницы с формой, а чтобы сразу не делая лишних телодвижений продолжал очередной ввод. Как я понимаю фокус по умолчанию на кнопке submit, а как его "программно установить" на текстовый инпут?

    T.e.

    HTML:
    1.  
    2. <script type="text/javascript">
    3. //<!--
    4. function SubmitForm()
    5. {
    6. var text_input = document.getElementById('d');
    7.    if (text_input.value.length == 6) {
    8.        document.getElementById('form').submit();
    9.    }
    10. }
    11. //-->
    12. </script >
    13.  
    14. <form method="post" name="form" action="" id="form">
    15.     <input type="text" name="a" value="1"><br>
    16.     <input type="text" name="b" value="2"><br>
    17.     <input type="text" name="c" value="3"><br>
    18.     <input type="text" name="d" id="d" onKeyUp="SubmitForm()"><br>
    19.     <input type="submit">
    20. </form>
    21.  
    [​IMG]
     
  2. HTML:
    1.     <body>
    2.         <input type="text" />
    3.         <input type="text" />
    4.         <input id="id" type="text" onblur="this.focus()" />
    5.         <input type="text" />
    6.         <input type="text" />
    7.         <script type="text/javascript">
    8.             document.getElementById('id').focus();
    9.         </script>
    10.     </body>
    11. </html>
     
  3. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    флоппик дюже благодарю!
    [​IMG]
     
  4. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Фокус конечно теперь на <input id="id" type="text" . Но теперь другие текстовые поля недоступны, туда теперь нельзя ничего вставить, при желании юзера. Хотя конечно не критично, можно например лишний чекбокс или кнопку вставить с вопросом хочет ли юзер изменять другие текстовые поля, и действием этой кнопки/ чекбокса убирать фокус из "нашего" поля, тем самым разблокировать другие текстовые поля.
    [​IMG]
     
  5. Ну когда ты разберешься, что и как делается в примере, ты несомненно, сможешь сделать так,как тебе нужно.
     
  6. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    onblur это жестоко :) почему не body onload?
     
  7. потому что это пример. И он заведомо делает не то, что надо, но предоставляет достаточно информации, что бы подумать, изучить, и сделать. Самому.
     
  8. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Мне действительно нужно чтобы другие поля были заблокированы, т.к. значения в них будет вставлять php-скрипт и мне не нужно чтобы они могли быть изменены.
    Всем спасибо.
    [​IMG]
     
  9. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    сделай им disable и не мучь js
     
  10. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Если бы только в этом дело было, я бы даже не задумывался, но тема топика именно в том чтобы фокус сразу после загрузки страницы был именно в нужном поле. А при "просто" disabled="disabled", поля блокируются, но фокус на сабмите стоит по умолчанию, а onblur="this.focus()" как раз делает, то что мне нужно.
    Спасибо. Вопрос исчерпан (для меня). Топик можно закрыть.
    [​IMG]