2011-12-30 25 views
3

我有HTML textareas,'有時'在值屬性中有'未定義' - 我無法計算出導致它的原因。HTML textarea的值是'undefined'

背景:我有一個PHP腳本,可以在一個頁面上生成大量的textareas文件 - 每個文件都有一個使用計數系統的唯一ID。 textareas屬於頁面上出現的不同形式。它就像每封電子郵件下的「快速回復」表單的電子郵件收件箱。

有時候,當提交表單時,相應的textarea值會以'undefined'出現,而不是用戶輸入到字段中的實際值。示例代碼:

//Javascript 
function quickReply(id) 
{ 
    message = document.getElementById('textarea_' + id).value(); 

    //Send 'message' and other details to PHP for handling... 
} 

我也試圖與jQuery的等價調用值:

$('textarea_' + id).val(); 

大部分一切正常,但有時值出現爲「未定義」的時間。 '未定義'然後發送到我的PHP代碼在Javascript中,並最終得到保存在數據庫中的'答覆',這是如何發現問題。

是什麼導致textarea具有'未定義'的值屬性?任何我可以嘗試解決這個問題?

+1

需要附加信息和此代碼的上下文。可以是從瀏覽器到您如何調用quickReply()的任何內容。你如何「發送」到PHP?發送之前是否未定義? – paislee 2011-12-30 00:52:28

+1

使用vanilla JavaScript時,使用屬性'.value'來獲取/設置表單字段的值。這只是使用jQuery的'.val()'方法的一種方法。 – scunliffe 2011-12-30 02:07:14

回答

4

這是概率,因爲你的DOM處理不當還加載你準備

$(document).ready(function() { 
    $('textarea_' + id).val(); 
}); 
4

要選擇通過標識jQuery中的項目的文檔中的標籤,不要忘了加「#」

$('#textarea_' + id).val(); 
0

我能夠通過使用標籤來封裝每個表單(每個表單都有唯一的ID)來解決此問題。

我相信應該可以一直訪問textarea的.value屬性,而不將它包含在表單標籤中,但是似乎Internet Explorer需要它在表單標籤中「有時」。

不是最好的答案 - 但它確實解決了問題。