2010-04-08 2 views
0

JavaScriptTypeError при применении значения текстового к переменному

var textarea = document.getElementById("textarea").value; 

HTML

<textarea id="textarea" cols="100" rows="10">du hello!</textarea> 
+2

Вы действительно должны сказать, какую точную ошибку вы получите ... – sth

+1

работает для меня ... в каком браузере вы используете? – Kip

+0

@Kip Я запускаю его на Safari и @sth, он дает мне ошибку: «TypeError: Результат выражения» document.getElementById («textarea») «[null] не является объектом». – Espresso

ответ

1

TypeError: Result of expression 'document.getElementById("textarea")' [null] is not an object.

Эта ошибка указывает, что он не мог найти элемент с идентификатором «текстовое поле». Результатом этой операции getElementById является поэтому null, и вы не можете получить доступ к .value по адресу null, так как он не имеет никаких свойств.

Основная причина этого в том, что ни один элемент с идентификатором «textarea» не существует во время поиска. Либо у вас есть опечатка где-то, либо ваш скрипт работает в то время, когда элемент еще не существует (пока). Если скрипт находится в заголовке, вы хотите, чтобы написать это:

document.ready = function() { 
    ... script here ... 
} 

Это будет задерживать выполнение, пока документ не будет готов и существуют все элементы.

+0

Я проверил все, и опечатка не была проблемой. Я попытался поставить 'document.ready =() {/ * с моим скриптом здесь * /}' в голове, отлаживался и не получал никакой ошибки, но он все еще не предупреждал значение текстового поля , Я поместил скрипт внутри '' и работал. Не является ли '.ready' jQuery конкретным? Я делаю простое веб-приложение, и я не хочу использовать какие-либо JS-рамки. – Espresso

+0

@ Espresso Нет, 'document.ready' не является специфичным для jQuery, но может быть специфичным для браузера. Вы также можете попробовать 'window.onload'. Вам нужно будет опубликовать больше кода, я думаю, что очевидные ловушки уже очищены. – deceze

0

если вы используете WYSIWYG редактора как TinyMCE или другое. document.getElementById ("textarea"). Value; не будут работать, у них есть собственный метод получения данных.

<script type="text/javascript"> 
    function test(name){ 
    var textarea = document.getElementById("textarea").value; 
    alert(textarea) 
    } 
</script> 

<textarea id="textarea" cols="100" rows="10">du hello!</textarea> 
<a href="javascript:void(0)" onclick="javascript:test('this is just testing')">Test TextArea</a> 
+0

Я хочу сказать текстовый редактор. кроме камеры, проверьте, что должен быть один тег с id = "textarea". Вы можете проверить, что ваш браузер PLS ссылается на мой ответ после редактирования. – Salil

Смежные вопросы