提交表单时,我想从表单中返回一些数据作为对象,但是我无法使数据位于正确范围内的对象中。我不确定为什么控制台在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设置为getFormDatacreateTaskForm.onsubmit的输入参数,可以在这些函数的范围内重新声明该变量。要从外部范围访问该值,您只需要引用它即可。

09-04 21:36