2017-02-22 69 views
0

我正在使用本地web應用程序,並且有'設置'頁面。用戶可以更改變量,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或東西您的設置像一個唯一的ID – Lucas

+0

你'html'是無效的......哪裏是你的收盤'form'標記? – brso05

+4

當您在文本字段中按Enter鍵(或單擊提交)時,它會導致表單提交,它將重新加載頁面,該頁面將重新加載您的JavaScript。泡芙,你的變量消失了。如果您有表單,請正確使用它(指定表單操作,寫入服務器處理程序)。如果你想純粹用JS做,那就不要使用表單。相反,在文本字段中處理change事件並堅持到本地存儲或其他東西。無論如何,你有很多事情要做。 –

回答

0

您需要防止您的網頁從清爽提交表單後。

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

爲什麼不只是溝渠形式? –