Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему indefinded (https://javascript.ru/forum/misc/21157-pochemu-indefinded.html)

9xakep 30.08.2011 20:13

Почему indefinded
 
<textarea id='text1' width='300'>
    1111
</textarea>
<input type='button' value='push' onclick='chet()'>
<script>
function chet() {
    alert('Количество символов в строке:' + document.getElementById('text1').TextLength)
}
</script>

B@rmaley.e><e 30.08.2011 20:15

getElementById возвращает элемент, а не его содержимое.

9xakep 30.08.2011 20:18

А что возвращает элемент?Попробовал через form не получается.

B@rmaley.e><e 30.08.2011 20:19

Почитайте уже что-нибудь.

popov654 30.08.2011 20:21

Он вызывал свойство length, дело не в этом...
Ставьте Вашу функцию в <body onload="">, подозреваю, у Вас просто DOM не сформирован. Самые распространённые грабли :)

9xakep 30.08.2011 20:25

<body onload='chet()'><form name='pole'><textarea id='text1' name='area'  width='300'>1111</textarea></form></body>
<script>
function chet () {
alert('Количество символов в строке: ' + document.pole.area.length)
}
</script>

Все равно не работает

B@rmaley.e><e 30.08.2011 20:26

Цитата:

Сообщение от popov654
Он вызывал свойство length, дело не в этом...

С каких пор у объектов HTMLTextareaElement есть свойство length?

9xakep, по-прежнему советую Вам проследовать по ссылке из моего предыдущего поста и почитать что-нибудь толковое.

popov654 30.08.2011 20:31

Ой, сорри) Глупость написал. Нужно document.pole.area.value.length

popov654 30.08.2011 20:31

А с textarea лучше вообще innerHTML

B@rmaley.e><e 30.08.2011 20:35

Цитата:

Сообщение от popov654
А с textarea лучше вообще innerHTML

Щито?! innerHTML вообще никак не связано с тем, что пользователь введёт в textarea.

9xakep 30.08.2011 20:37

B@rmaley.e><e, спасибо за сайт, надо было использовать TextLength
<textarea id='text1' width='300'>
    1111
</textarea>
<input type='button' value='push' onclick='chet()'>
<script>
function chet() {
    alert('Количество символов в строке:' + document.getElementById('text1').textLength)
}
</script>

B@rmaley.e><e 30.08.2011 20:43

textLength введён только в HTML5, старые браузеры его не поддерживают. Посмотрите что-нибудь ещё.

9xakep 30.08.2011 21:53

пф...спасибо что предупредили. Посмотрел есть value, никогда бы не подумал что у textarea он есть :blink:

popov654 30.08.2011 23:40

Цитата:

Щито?! innerHTML вообще никак не связано с тем, что пользователь введёт в textarea.
Разве?.. Странно, по идее любые динамические изменения, внесённые посредством JsvaScript, отражаются в innerHTML. Разве на текст, который ввели, это не распространяется?

И потом, у ТС там всяко данные УЖЕ были, изначально, в HTML коде)

popov654 30.08.2011 23:44

А, вот, открыл книгу, там сказано, что innerHTML с textarea использовать не следует, так как в некоторых браузерах можно получить вместо текущего значения значение по умолчанию (т.е. изначальный innerHTML). Как правило он пуст :)
Так что Вы совершенно правы)


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