2014-02-27 28 views
-1

我有(HTML)的JavaScript,我希望有人能幫助我在這裏/如何在inputfield上使用setinterval?

:我將我自己的酒櫃在JavaScript中, 你可以打開和關閉的門,如果你打開門的一個問題7.1的原始溫度將升高0.9,關閉後它會自動降低到7.1(每5分鐘0.2次),我使用setinterval來做到這一點。

現在我想添加inputfield輸入的ID = 「desiredtemp」 類型= 「文本」

和另一=按鈕按鈕類型= 「按鈕」 ID = 「期望」>設置期望的溫度/按鈕

我這樣做是因爲我想添加一個功能,當您關閉門時,您可以將溫度降低至所需溫度而不是原來的7.1。但我不能得到它的工作

任何幫助將非常感激。

繼承人到目前爲止我的代碼

var degree = 7.2;//graden 
      var counter = 0;//counter gebruikt om stand aan te geven van wijnkoeler 




      function myFunction() { 
       if (counter === 0) { 
        document.getElementById("dicht").src = "images/open.jpg"; 
        degree = degree + 0.9; 
        temp.innerHTML = degree; //+ " " + "graden celsius in de wijnkoeler"; 
        console.log("Wijnkoeler is geopend"); 
        console.log("Temperatuur " + "is " + "nu " + degree + " Graden"); 
        counter = 1; 
       } 

       else if (counter === 1) { 
        document.getElementById("dicht").src = "images/dicht.jpg"; 
        console.log("de temperatuur van de Wijnkoeler is gestegen naar" + degree); 
        console.log("De motor wordt gestart"); 
        console.log("..."); 
        console.log("..."); 
        console.log("..."); 
        var id = window.setInterval(function() { 
         degree = parseFloat(Math.max(7.2, (degree - 0.2)).toPrecision(2));//telkens 0.2 graden eraf -- afronden 
         if (degree == 7.2) {            //als het weer 7.2 graden is motor uitschakelen  
          window.clearInterval(id); 
          console.log("De temperatuur is weer op " + degree + "graden"); 
          console.log("De motor wordt uitgeschakeld") 
         } 
         temp.innerHTML = degree; 
        }, 5 *60 *1000);              //elke 5 minuten 
        counter = 0; 
       } 
      } 

HTML:

<body> 



     <button onclick="myFunction();">Open/Close</button> 
     <p id="Temperatuur">Temperatuur</p> 
     <p id="temp">7.2</p> 

     <input id="desiredtemp" type="text"> 

     <button type="button" id="desired">Set desired temperature</button> 

     <img id ="dicht" src="images/dicht.jpg"/> 



    </body> 

再次感謝

+0

爲什麼不隱藏按鈕,直到你需要它? –

+0

你的意思是?我想在那裏打開它時可以選擇將溫度降低到另一個數字。 – user3058036

+0

而不是添加按鈕,從一開始就隱藏起來。需要時取消隱藏。 –

回答

0

你需要做一些修改。首先,擺脫不斷7.2在你setTimeout功能,並帶有可變替換:

var targetTemp = document.getElementById("desiredtemp").value || 7.2; //get from textbox, or use 7.2 if no value set 

然後,引用它,而不是常量:

degree = parseFloat(Math.max(targetTemp, (degree - 0.2)).toPrecision(2)); 

和:

if (degree == targetTemp) { 

最後,您可以刪除「設置所需溫度」按鈕,因爲您並不需要它。

你可以看到所有這些變化在撥弄:http://jsfiddle.net/magnafides/56w6E/3/

+0

感謝您的貢獻它幫助,但我希望0.9溫度每次我打開冷卻器(缺席最大)。結束時,當我打開它在我的瀏覽器它一直說「暫停在調試器」是什麼?感謝您的幫助 – user3058036

+0

'debugger'是某些瀏覽器可以識別的特殊關鍵字,並且會導致瀏覽器調試器在該行暫停。然後,您可以使用調試工具,包括在控制檯中輸入一些命令來測試某些值/命令。我不打算把它留下。無論如何,答案和鏈接都會更新。 – ach

+0

@ user3058036 - 如果我的答案有效,我會很感激,如果你接受它。如果不讓我知道爲什麼。 – ach