2010-04-08 31 views
0

的JavaScript類型錯誤時,一個textarea的值給一個變量

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

HTML

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

你應該真的說出你得到了什麼確切的錯誤... – sth 2010-04-08 03:47:26

+1

適合我......你使用的瀏覽器是什麼? – Kip 2010-04-08 03:54:14

+0

@Kip我在Safari上運行它和@sth它給了我錯誤:「TypeError:表達式結果'document.getElementById(」textarea「)'[null]不是一個對象。」 – Espresso 2010-04-08 05:03:28

回答

1

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

此錯誤指出它無法找到ID爲「文本區域」的元素。此getElementById操作的結果因此是null,並且您不能在null上訪問.value,因爲它沒有任何屬性。

這樣做的根本原因在於,搜索時不存在具有id「textarea」的元素。要麼你在某個地方出現錯字,要麼你的腳本在元素不存在的時候運行(還)。如果你的腳本是在標題,你會想它這樣寫:

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

,直到該文件已準備就緒,所有的元素存在,這將延緩執行。

+0

我檢查了一切,錯字不是問題。 我試過把'document.ready =(){/ *在我的腳本里放在* /}'的頭部,調試過並沒有得到任何錯誤,但是它仍然沒有提示textarea的值。我把腳本放在''裏面,然後工作。 jready是不是'.ready'?我正在製作一個簡單的Web應用程序,我不想使用任何JS框架。 – Espresso 2010-04-08 06:12:27

+0

@Espresso不,'document.ready'不是jQuery特有的,但它可能是瀏覽器特定的。你可以選擇'window.onload'。你需要發佈更多的代碼,我認爲現在已經清除了明顯的缺陷。 – deceze 2010-04-08 06:31:46

0

如果您正在使用所見即所得的編輯器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」。你可以檢查你的瀏覽器請參考編輯後的答案。 – Salil 2010-04-08 05:29:15

相關問題