我有一个类型为text的输入,我在其中添加了一个值。
<input type="text" name="mydat" id="mydat" value="60000" />
我有一个每分钟运行一次的计时器。
<script>
window.setInterval(function(){
//do something here
}, 60000);
</script>
在上面的代码中,区间值是硬编码的。
我该怎么做呢:
60000 = #mydat value
因此,每次循环时它都会从#mydat?
中读取值答案 0 :(得分:7)
递归使用setTimeout
。
var startTimer = function() {
console.log("do something here");
window.setTimeout(startTimer, parseInt($("#mydat").val(), 10));
});
startTimer();
答案 1 :(得分:5)
“每次循环”意味着值可能会发生变化 - 因此setInterval
不正确,您需要重复使用setTimeout
...
function DoSomething() {
//Do Stuff
setTimeout(DoSomething, document.getElementById('mydat').value);
}
如果文本框的内容发生变化(在下一个事件触发后),应该执行您需要的操作并更新超时
答案 2 :(得分:2)
您可以使用value属性检索输入的值。
var interval = document.getElementById('mydat').value;
window.setInterval(function() {
// Some code...
}, interval);
或使用jQuery
var $interval = $('#mydat').val();
window.setInterval(function() {
// Some code...
}, $interval);