2017-02-22 4 views
0

Я работаю над webapp локально, и у меня есть страница настроек. Пользователь может изменить переменные, и Javascript должен сохранить значения, но, похоже, он возвращает их к 1 прямо после их изменения.Сбрасывание переменных Javascript

HTML:

<body onload="getSettings()"> 
     <h1>Instance Load Manager - Settings</h1> 
     <div id="uploader"> 
      <h2>Terraform file upload:</h2> 
      <input type="file" id="file" name="files[]" multiple onchange="moveFile()" /> 
     </div> 
     <a href="index.html"> 
      <div id="settingsButton"> 
       <h3>Back</h3> 
      </div> 
     </a> 
     <div id ="settingsForm"> 
      <form> 
       Maximum instances:<br> 
       <input type="text" id="maxInst" name="max instances"><br> 
       <br> 
       <input type="submit" value="Save Changes" onclick="updateSettings()"> 
     </div> 
    </body> 

Javascript:

var maxInstances = 1; 

function updateSettings() 
{ 
    maxInstances = document.getElementById("maxInst").value; 
    alert(maxInstances); 
} 

function getSettings() 
{ 
    document.getElementById("maxInst").value = maxInstances; 
} 

Помощь оценили :)

+0

сохранить в файл JSON параметры с IP пользователя или что-то, как уникальный идентификатор – Lucas

+0

Ваш 'html' недействителен ... где ваше закрытие' form' метить? – brso05

+4

Когда вы нажимаете ввод (или нажимаете кнопку «Отправить») в текстовых полях, он вызывает форму submit, которая перезагружает страницу, которая перезагружает ваш javascript. Puff, ваши переменные исчезли. Если у вас есть форма, используйте ее правильно (укажите действие формы, обработчик сервера записи). Если вы хотите сделать это исключительно в JS, то не используйте форму. Вместо этого обрабатывайте события обмена в текстовых полях и сохраняйте локальное хранилище или что-то в этом роде. В любом случае, вы получили __a много ___ чтении. –

ответ

0

Вы должны предотвратить вашу страницу с освежающим после отправки формы.

function updateSettings(e) 
{ 
    e.preventDefault(); 
    maxInstances = document.getElementById("maxInst").value; 
    alert(maxInstances); 
} 
+0

Почему бы просто не опустить форму? –