ここで何を達成しようとしているのかわかりません。現在入力フィールドにある値を一度だけ取得する必要がある場合は、これで問題ありません。入力値が変更されたときに form.fname の値が継続的に更新されることを期待している場合、それは発生しません。入力の変更イベントに関連付けられたハンドラーが必要になるか、次のようなことを行う必要があります。
var form = {
fname: function () {
return document.getElementById('fname').value;
}
};
// Retrieving
form.fname()
ここで fname 関数を呼び出す必要があることに注意してください。単純に として参照することはできませんform.fname
。
再入力する必要がまったくない場合は、次のようにします。
var fields = ['fname', 'lname', 'city', 'state'];
var form = {};
for (var i = 0, j = fields.length; i < j; ++i) {
form[fields[i]] = function () {
return document.getElementById(fields[i]).value;
}
}
フォームにドロップダウン リストなどを追加する場合は、あまり役に立たないため、もう少し注意する必要があり.value
ますが、名前が変わっても名前を再入力することはありません。
そして、本当に気を使いたいのであれば、値を取得するときに名前を入力する必要さえありません。
for (var i = 0, j = fields.length; i < j; ++i) {
console.log(form[fields[i]]())
}