我不确定您要在这里完成什么。如果您只需要一次检索当前输入字段中的值,那么这应该没问题。如果您期望 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]]())
}