[英]How can I make sure when I put a new number in input field the script/ <p> tag refreshes?
So I have this script, when I input a number and press the button it says if its a prime number or not, but when I put a new number the <p>
tag does not refresh, it keeps the result of the first input.所以我有这个脚本,当我输入一个数字并按下按钮时,它会说它是否是质数,但是当我输入一个新数字时, <p>
标签不会刷新,它会保留第一次输入的结果。
var primeResult;
var number;
window.addEventListener("load", Init);
function Init(){
number = Number(document.getElementById("PrimeNumb").value);
primeResult = document.getElementById("PrimeResult");
let primeButton = document.getElementById("btn");
primeButton.addEventListener("click",IsPrime);
}
function IsPrime()
{
var i,flag=0;
for(i=2; i <= number/2; i++)
{
if(number%i == 0)
{
flag = 1;
break;
}
}
if(flag == 0)
{
primeResult.innerHTML = number + " is een prime nummer!";
}
else
{
primeResult.innerHTML = number + " is geen prime nummer!";
}
}
您可以对输入使用事件处理程序,例如change
或input
document.getElementById("PrimeNumb").addEventListener('input', IsPrime);
好的所以我已经修复了它,我将 ```let number = Number(numberElement.value)```` 放在 IsPrime 函数中,它解决了我的问题
You have the init
method on page load initializing your number
variable.您在页面加载时使用init
方法来初始化您的number
变量。 Hence it always checks if the the first value is prime.因此它总是检查第一个值是否为素数。
You can add the isPrime
event handler directly on the input element like Josh mentioned or you can change your isPrime
method to always get the current number value like you already have it in your init
function.您可以像 Josh 提到的那样直接在输入元素上添加isPrime
事件处理程序,或者您可以更改isPrime
方法以始终获取当前数值,就像您在init
函数中已经拥有它一样。
number = Number(document.getElementById("PrimeNumb").value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.