我有一個窗體,其ID爲相應輸入框的名稱,標題和說明。 但是,當我嘗試在HTML中顯示這些值時,我會收到「[object HTMLInputElement]」或「undefined」。窗體輸入文本顯示爲「未定義」或「[object HTMLInputElement]」
我得到的以下代碼塊,我已經聲明的變量名稱,標題和描述全球職能以外的檢索輸入值「未定義」。
var name;
var title;
var description;
document.getElementById("name").onchange = function(){
name = document.getElementById("name").value;
};
document.getElementById("title").onchange = function(){
title = document.getElementById("title").value;
};
document.getElementById("description").onchange = functio){
description = document.getElementById("description").value;
};
var myhtml = '<p>' + name + '</p><p>' + title + '</p><p>' + description + '</p><p>';
不過,我得到[對象HTMLInputElement]如果我代替聲明函數中的變量(而不是 「全局」?),像這樣:
document.getElementById("name").onchange = function(){
var name = document.getElementById("name").value;
};
MYHTML是變量,其打印在DOM中。
這是怎麼回事?如果我將它們全局聲明,我已經嘗試將名稱,標題和描述傳遞給函數。但是這並沒有解決問題(我仍然有「[object HTMLInputElement]」)。
'undefined',因爲變量不是在運行時(你設置事件偵聽器裏面的值,這顯然有沒有被觸發時'定義MYHTML '被宣佈)。 '[object HTMLInputElement]',因爲具有ID屬性的元素可以作爲window [「id_of_element」]'訪問,前提是不存在名爲'id_of_element'的全局變量。 – 2013-03-22 23:43:56
myhtml如何在DOM中「打印」?您已經定義了onchange事件,所以除了處理程序之外,這些值不會顯示。 – 2013-03-22 23:59:10
感謝評論傢伙。現在我正在修改函數分解,範圍和運行時間,正如@RobW的評論暗示給我的。上面這段代碼是雙重嵌套的「click」函數的一部分,它們在兩個dom/window初始函數中。所以事情可能變得混亂。 – LazerSharks 2013-03-23 00:10:41