03
Окт
2022

Переменная в теле функции и доступ к ней из другой

Дело в том, что объявляя переменную в теле two() я не могу получить доступ к ней в функции one(). alert() срабатывает только один раз, дальше ошибка, "myConst is not defined".

Если же определить ее вне функции, то все работает, но специфика моего стрипта такова, что ее нужно опеделять именно внутри...

<input value="Click me!" type="button" id="myButton">

<script>

function one() {
    alert(myConst);
}

function two() {
    const myConst = 'myConst';
    document.getElementById("myButton").addEventListener("click", function() {
        alert(myConst);
        one();
    });
}

two();

</script>

Как исправить?

UPD:


function loadForm() {
   
    const xhttp = new XMLHttpRequest();
    xhttp.onload = function() {
        
        const elementResult = document.querySelector('#form-container');

        elementResult.innerHTML = this.responseText;

        const elementForm = document.querySelector('[name="contact-form"]');
        const elementName = elementForm.querySelector('[name="name"]');
        const elementEmail = elementForm.querySelector('[name="email"]');
        const elementMessage = elementForm.querySelector('[name="message"]');
        const elementKey = elementForm.querySelector('[name="key"]');
        const requestURL = elementForm.action;
        
        elementForm.addEventListener('submit', (e) => {
            e.preventDefault();
            sendForm();
        });

    }

    xhttp.open("GET", "mailer/?action=form", true);
    xhttp.send();

}

function sendForm() {

   const name = encodeURIComponent(elementName.value);
   const email = encodeURIComponent(elementEmail.value);
   const message = encodeURIComponent(elementMessage.value);
   const key = encodeURIComponent(elementKey.value);

   /* Здесь формируется и отправляется запрос */
}

Источник: https://ru.stackoverflow.com/questions/1453880/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F-%D0%B2-%D1%82%D0%B5%D0%BB%D0%B5-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D0%BD%D0%B5%D0%B9-%D0%B8%D0%B7-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9

Тебе может это понравится...

Добавить комментарий