Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получить value из input'a. (https://javascript.ru/forum/events/16881-poluchit-value-iz-input%27.html)

Zhiganov 26.04.2011 16:50

Получить value из input'a.
 
Ситуация очень глупая =) Но я ничего не понимаю.

На странице примерно такая структура:
<form name="post" action="post.php" method="post" id="post">
...
<input type="text" name="price" id="price" value="10000" size="30" tabindex="30" style="width: 97%">
…

Пытаюсь получить через:
document.getElementById('price').value;
document.getElementsByName('price').value;
document.forms['post'].price.value;
document.post['price'].value;


Всегда получаю [undefined] или [null], якобы "is not an object."
Если убираю .value, и получаю элемент в переменную, то вроде не ругается, но добавив к элементу .value опять же получаю null. В чем косяк?

Skipp 26.04.2011 17:00

потому что вы пытаетесь получить значение value элемента которого нет ещё на странице

заметьте разницу этого
<script>alert(document.getElementById('price').value)</script>
<input id="price" value="10000">

и этого
<input id="price" value="10000">
<script>alert(document.getElementById('price').value)</script>

Zhiganov 26.04.2011 17:41

Skipp, неее, я код примерно привел, сам скрипт у меня висит в header'e и вызывается на window.onload, так что дело не в этом

Skipp 26.04.2011 17:52

а что возвращает document.getElementById('price') ?

рони 26.04.2011 18:30

Цитата:

Сообщение от Zhiganov
document.getElementsByName('price').value;

document.getElementsByName('price') -- это список элементов с одинаковым именем , поэтому необходимо указать индекс элемента в этом списке.
document.getElementsByName('price')[0].value;

Zhiganov 26.04.2011 19:08

Мне ужасно неудобно, но в общем, я удалил все скрипты и написал заново и чудесным образом заработало, вот понемногу изучаю JS и не могу понять то ли javascript такой капризный, то ли я невнимательный.

melky 26.04.2011 19:23

насчет капризов - сноси


какие капризы, если даже типизации нет????


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