それぞれの入力ボックスのIDの名前、タイトル、説明が記載されたフォームがあります。ただし、これらの値をHTMLで表示しようとすると、「[objectHTMLInputElement]」または「undefined」のいずれかが表示されます。
入力値を取得するために、関数の外部で変数name、title、descriptionをグローバルに宣言した、以下のコードブロックで「undefined」を取得します。
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>';
ただし、次のように、関数内で(「グローバルに」ではなく)変数を宣言すると、[objectHTMLInputElement]が取得されます。
document.getElementById("name").onchange = function(){
var name = document.getElementById("name").value;
};
myHTMLは、DOMに出力される変数です。
何が起きてる?グローバルに宣言されている場合は、名前、タイトル、説明を関数に渡してみました。しかし、それでも問題は解決しませんでした(まだ「[objectHTMLInputElement]」を取得しました)。