Переменная объявлена, но ее значение никогда не читается JavaScript - PullRequest
0 голосов
/ 11 октября 2019

Моя цель состоит в том, чтобы заставить кнопку Close в этом модальном режиме оставить входы такими, какие они есть, когда кнопка Save была нажата ранее. Он уже сохраняет значения и сбрасывает их, когда я нажимаю кнопку «Отмена», но моя переменная «сохранена» объявляется, и даже когда я использую ее в функциях, она показывает мне эту ошибку и не делает то, что я хочу.

import {
    getInput, setInput
} from '../../service/data'

let close = document.getElementById('advsettings_close');
let cancel = document.getElementById('advsettings_cancel');
let save = document.getElementById('advsettings_save');
const settingsForm = document.getElementById('advsettings_form');
const settingsSliders = settingsForm.querySelectorAll('input');
var saved = false;


cancel.addEventListener('click', function() {
    cancelSettings();
});

save.addEventListener('click', function() {
    saveSettings();
});

close.addEventListener('click', function() {
    closeSettings();
});

settingsForm.addEventListener('submit', function (event){
    event.preventDefault();
});

function cancelSettings(){
    settingsSliders.forEach(function(input) {
         input.value = 5;
        console.log('Values canceled and reset');

    });
    saved = false;
}

function saveSettings(){
    settingsSliders.forEach(function(input) {
        if (input.type === 'range') {
            setInput(input.name, input.value);
            console.log('Save Value of ' + input.name + ':', input.value);
        }
    });
    saved = true;
}

function closeSettings(){
    settingsSliders.forEach(function(input) {
        if (saved = true){
            input.value = setInput(input.name, getInput(input.value));
        } else if(saved = false) {
            input.value = 5;
        }
    });
}

1 Ответ

0 голосов
/ 11 октября 2019

В выражении if есть ошибка:

function closeSettings(){
  settingsSliders.forEach(function(input) {
    if (saved == true){
        input.value = setInput(input.name, getInput(input.value));
    } else if(saved == false) {
        input.value = 5;
    }
 }

Кроме того, лучше непосредственно оценивать условия как логические значения:

function closeSettings(){
  settingsSliders.forEach(function(input) {
    if (saved){
        input.value = setInput(input.name, getInput(input.value));
    } else{
        input.value = 5;
    }
 }
...