javascript - Javascript 主动刷新
问题描述
我这里有一个应该刷新的数字,以防表单选择直接发生变化,没有按钮。例子:
<div class="col">
<label for="speicher3">SSD & HDD (3)</label>
<select class="form-control" id="speicher3" name="speicher3">
<option value="1">-</option>
<option value="2">Samsung EVO 970 - 500GB (M.2 - SSD)</option>
<option value="3">Samsung EVO 970 - 1TB (M.2 - SSD)</option>
<option value="7">Corsair MP400 - 2TB (M.2 - SSD)</option>
<option value="4">Datenplatte 1TB (HDD)</option>
<option value="5">Datenplatte 2TB (HDD)</option>
<option value="6">Datenplatte 3TB (HDD)</option>
</select>
</div>
</div>
所以选项2在选择的时候我应该直接获取这个属性中的值2:
<p id="preis" name="preis">
Gesamtpreis:
</p>
这就是功能,我不知道为什么间隔不起作用,我认为我做错了什么。也许有人知道为什么
var sum = 0;
setInterval(sum = document.getElementById("gpu").value,0.5);
setInterval(document.getElementById("preis").innerHTML = "Gesamtpreis: " + sum,0.5);
解决方案
在处理 javascript 中的 setInterval() 函数和元素更改时,您必须知道一件重要的事情。永远不要使用 setInterval() 来达到你想要达到的结果。setInterval() 函数将在您的情况下每毫秒触发一次,并可能导致浏览器出现性能问题。如此处所述:https ://www.w3schools.com/jsref/met_win_setinterval.asp setInterval() 方法将继续调用该函数,直到调用 clearInterval() 或关闭窗口。
为了做你想做的事,在 select 上使用 onchange() 方法:
<select class="form-control" id="speicher3" name="speicher3" onchange="changePreis();">
在你的 javascript 中写:
<script>
function changePreis(){
var sum = 0;
sum = document.getElementById("speicher3").value;
document.getElementById("preis").innerHTML = "Gesamtpreis: " + sum;
}
</script>
另一件重要的事情(不要在这种特定情况下使用)。如果要使用 setInterval() 函数,则必须使用以下语法:
setInterval(function(){sum = document.getElementById("speicher3").value;},0.5);
看一些例子,比如 W3C 学校: https ://www.w3schools.com/jsref/event_onchange.asp
推荐阅读
- objective-c - Swift 构建 Linux 与 macOS
未找到 - java - 乘法表输出
- java - 我的 Netbeans 11.3 IDE 有问题
- python - 如何在python qt设计器中显示带有两个按钮的消息
- swift - 为什么每次我的 tableview 重新加载时,里面都有重复项?
- typescript - 类型“DocumentData”不可分配给类型“IProduct”
- bash - 如何在 Ubuntu 中编写增量备份脚本?
- amazon-web-services - 与 AWS SNS 进行 AWS Lambda 跨账户集成时出错
- flink-streaming - Flink 事件会话窗口不发出记录
- python - 如何在 Python 中对 json 特定的键值进行排序