Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает? (https://javascript.ru/forum/misc/46068-pochemu-ne-rabotaet.html)

AIR 26.03.2014 17:35

Почему не работает?
 
Доброго времени суток всем. :)
Я в JavaScript начинающий и столкнулся с такой проблемой.
Нужно проверить формочку на скрипте, но не могу достучаться до
элемента по ID почему то. Вот привожу код.

<script type="text/javascript">  
var login_field = document.getElementById('login_field');
login_field.oninput = function()
        {
            document.getElementById('login_message').innerHTML = "Проверка!!!";
        }
</script>


Вот кусок из HTML:

<form name="reg_form" method="post" action="ins_data.php">
          <table width="530" border="1">
              <tr>
                <td class="text"><p>Логин:</p></td>
                <td class="inputs"><input type="text" id="login_field" name="login_field"/></td>
                <td><div class="message" id="login_message"></div></td>
              </tr>
           </table>
</form>


Почему то не могу достучаться по ID к полю формы. Хотя на первый взгляд, вроде всё верно делаю.

Прошу сильно не критиковать, так как я совсем новичок :)
За ранее благодарен за помощь :)

nice_try 26.03.2014 17:40

все норм http://jsfiddle.net/6ZjLm/

js вызываешь позже генерации дом?

jsnb 26.03.2014 17:42

Скрипт после формы поставь, а то на момент выполнения скрипта у тебя еще никакой формы и нет.

AIR 26.03.2014 17:44

В смысле "после генирации дом"?

Сперва в теге <head> описан скрипт, в <body> описано все остальное. формочка лежит в дополнительном контейнере <div> для более удобного позиционирования :)

nice_try 26.03.2014 17:45

Цитата:

Сообщение от AIR (Сообщение 304518)
В смысле "после генирации дом"?

Сперва в теге <head> описан скрипт, в <body> описано все остальное. формочка лежит в дополнительном контейнере <div> для более удобного позиционирования :)

положи скрипт после формы

AIR 26.03.2014 17:48

Не думал что в JavaSript это критично :)
Попробую сейчас.

Назревает еще вопрос.
Если я захочу код вынести в отдельный .js файл, то подключать мне его нужно будет тоже после вывода формы?

AIR 26.03.2014 17:55

Цитата:

Сообщение от nice_try (Сообщение 304519)
положи скрипт после формы

Спасибо большое за помощь.
Вроде в тестовом варианте заработало :)
Не думал что место положения кода критично :)

Aetae 26.03.2014 18:21

AIR, javascript выполняется сразу по мере загрузки. Соответственно в вашем случае он выполнялся до того как на странице появилось хоть что-то ещё. Чтобы отложить выполнение используются варианты window.onload.

Georgiy_M 26.03.2014 18:34

<script type="text/javascript">
var login_field = document.getElementById('login_field');
window.onload = function() {
login_message = document.getElementById('login_message');
}

login_field.oninput = function()

{
login_message.getElementById('login_message').inne rHTML = "Проверка!!!";
}
</script>

самый простой способ

Georgiy_M 26.03.2014 18:37

rHTML не совсеми тегами работает

если выше указанный способ не заработает попробуй использовать не rHTML а textContent

ДА И В ВЫШЕУКАЗОННОМ ПРИМЕРЕ ОЧЕВИДНАЯ ОШИБКА САМ ПОПРАВЬ


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