Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передать значение из AddEventListener в переменную (https://javascript.ru/forum/events/74264-peredat-znachenie-iz-addeventlistener-v-peremennuyu.html)

miknn 25.06.2018 18:48

Передать значение из AddEventListener в переменную
 
Здравствуйте.
Подскажите, можно ли как-то взять значение из обработчика событий и сохранить его в переменную для дальнейшего использования?

var model = document.getElementById('model');
var rest = document.querySelectorAll('#res p span');
model.addEventListener("input", dve); 
function dve (dv) {
        if (model.value === 'В02') {
        dv = V02;
         } else if (model.value === 'В03дп') {
        dv = V03dp;}
        else if (model.value === 'В02Б') {
            dv = V02b;
        }else if (model.value === 'В02Г') {
            dv = V02g;
        }
            rest[0].innerHTML = dv;
};


В общем надо как-то вытащить значение dv или как правильно это значение вывести. Но оно меняется динамически при выборе того или иного OPTION пользователем на сайте

MC-XOBAHCK 25.06.2018 20:39

Через свич удобнее читать такой код.
var model = document.getElementById('model');
var rest = document.querySelectorAll('#res p span');
model.addEventListener('input', dve());
function dve ( ) {
    switch (model.value) {
        case 'В02': dv = V02; break;
        case 'В03дп': dv = V03dp; break;
        case 'В02Б': dv = V02b; break;
        case 'В02Г': dv = V02g; break;
    }
    rest[0].innerHTML = dv;
};

И если значения dv это текст, а не переменная, то нужно их в кавычки взять:
dv = 'V02'; break;
dv = 'V03dp'; break;
и т.д.

miknn 25.06.2018 23:12

dv это числа, т.е. это переменная.
Вот она и нужна мне для других вычислений.
Т.е. пользователь в форме выбрал опцию, мы получаем определенное значение переменной dv, а дальше надо как-то эту величину использовать в других вычислениях вне этой функции

Nexus 26.06.2018 09:44

miknn, вынесите нужную переменную в глобальную область видимости или из event listener'а вызывайте какую-нибудь функцию, передавая ей необходимое значение.
Пример с глобальной ОВ.
<input type="button" value="0" id="input"/>
<input type="button" value="Get value" id="get_button"/>
<script>
var globalValue=0;
input.onclick=()=>input.value=++globalValue;
get_button.onclick=()=>alert(globalValue);
</script>

ps. Лучше переменную выносить не в глобальную ОВ, а в доступную обоим сценариям.

ksa 27.06.2018 08:57

Цитата:

Сообщение от MC-XOBAHCK
Через свич удобнее читать такой код

Или вообще объект делать
var o={
   'В02': 1,
   'В03дп': 2,
   'В02Б': 3,
   'В02Г': 4
};
dv =o[model.value];


Часовой пояс GMT +3, время: 14:50.