如何在输入字段上使用setinterval?

时间:2014-02-27 21:56:11

标签: javascript html5

我有(html)javascript的问题,我希望有人可以帮助我/

我正在用javascript制作自己的酒柜, 你可以打开和关闭门,如果你打开门,7.1的原始温度将升高0.9,关闭后它会自动降低到7.1(每5分钟0.2),我使用setinterval来做到这一点。

现在我想添加一个输入字段输入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>

再次感谢

1 个答案:

答案 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/