Как получить доступ к значению переменной вне метода addEventListner? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь получить доступ к значению "var accInfo" вне addeventlistner, чтобы я мог использовать этот объект для дальнейшего кодирования. Я новичок в javascript и не знаю jquery и другие фреймворки, так что, будьте добры, помогите мне. спасибо

let form1 = document.getElementById('form1');

form1.addEventListener('submit', () => {
    let fname = document.getElementById("defaultRegisterFormFirstName").value
    let lname = document.getElementById("defaultRegisterFormLastName").value
    let email = document.getElementById("defaultRegisterFormEmail").value
    var accInfo = acc(fname, lname,email);
    console.log(accInfo)
    return false
})

function acc(fname,lname, email){
    let accInfo = {fname, lname, email}
    return accInfo;
}

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

определяет accInfo как глобальную переменную, например:

var accInfo; //leave it undefined for now
form1.addEventListener('submit', () => {
    //...
    accInfo = acc(fname, lname,email);
    //...
})

function acc(fname,lname, email){
    let anotherVariableName = {fname, lname, email}
    return anotherVariableName;
}

//now you can use it outside, but it will be undefined until the event listener is called
console.log(accInfo);

Вы должны изменить функцию a cc, чтобы иметь другое имя для своей переменной, хотя

0 голосов
/ 14 апреля 2020

Вы можете назначить global variable и сохранить его для дальнейшего использования вне слушателя следующим образом:

let form1 = document.getElementById('form1');
let globalAccInfo = null;
form1.addEventListener('submit', () => {
    let fname = document.getElementById("defaultRegisterFormFirstName").value
    let lname = document.getElementById("defaultRegisterFormLastName").value
    let email = document.getElementById("defaultRegisterFormEmail").value
    var accInfo = acc(fname, lname,email);
    globalAccInfo = accInfo; //update it here
    console.log(accInfo)
    return false
})

function acc(fname,lname, email){
    let accInfo = {fname, lname, email}
    return accInfo;
}
...