提交表单时,我想从表单中返回一些数据作为对象,但是我无法使数据位于正确范围内的对象中。我不确定为什么控制台在onsubmit事件处理程序中记录newEvent变量是否会返回一个事件。
如何访问外部范围中返回的表单数据?
JSFiddle:http://jsfiddle.net/antfish/crp98hhw/40/
var createTaskForm = document.getElementById('create-task'),
newTask = new Object();
//Returns empty object (I would like my returned object accessible in this scope)
console.log(newTask);
function getFormData(id, newTask) {
var createTaskForm = document.getElementById(id),
formElements = createTaskForm.elements;
createTaskForm.onsubmit = function(newTask) {
var title = formElements['todo-title'].value,
content = formElements['todo-content'].value;
newTask.title = title;
newTask.content = content;
//Returns Event
console.log(newTask);
return newTask;
}
}
getFormData('create-task');
最佳答案
通过将newTask
设置为getFormData
和createTaskForm.onsubmit
的输入参数,可以在这些函数的范围内重新声明该变量。要从外部范围访问该值,您只需要引用它即可。