我正在制作一个简单的 JavaScript 函数,您可以在表单中输入两个数字,然后该函数确定这两个数字的总和是否为素数。这一切都有效,但是当该函数显示带有 document.getElementById("demo").innerHTML 的消息并且
时,它仅在网页上显示一秒钟,然后消失。我想让该消息一直保留到您再次单击该按钮为止。我搜索过这个网站和其他网站,但没有找到任何东西。这是代码:
<!DOCTYPE html>
<html>
<head>
<link href="/prime.css" rel="stylesheet" type="text/css" />
<script>
function prime()
{
// get the values from the form
var x= document.forms["frm1"]["x"].value;
var y= document.forms["frm1"]["y"].value;
//test the values of the form
if (x == "null"|| x=="" || isNaN(x)|| y=="null" || y==""|| isNaN(y)){
alert("You must enter two numbers.");
exit;
}
//change variables to number and add them together
var number = (parseInt(x)+ parseInt(y));
var a="";
var prime = true;
//check to make sure number is not less than one
if (number <= 1){
alert("Sorry " +number+ " is not a prime.");
prime = false;
exit;
}
//check if number is a prime
for (var dividby = 2; dividby <= number / 2; dividby++){
if(number % dividby == 0)
prime = false;
break;
}
//send congratulations
if(prime==true){
a="congratulations " + number + " is a prime!";
}
//send condolences
else{
a="Sorry "+number+ " is not a prime.";
}
document.getElementById("demo").innerHTML=a;
}
</script>
</head>
<body id="elem">
<div class="div"></div>
<div>
<br>
<h1>PRIME NUMBERS</h1>
<p>Please enter two numbers to be added and see if the result is a prime.</p><br>
<form name="frm1" >
<input type="text" name="x">
+ <input type="text" name="y">
<button onclick="prime()">click me</button>
</form>
<br>
<p id="demo"></p>
</div>
</body>
</html>
最佳答案
问题是您的“单击我”按钮实际上正在提交表单,导致页面重新加载(因为您的 <form>
没有 action
属性,所以它提交到同一页面)。 <button>
标签默认为 type="submit"
。要使其不是提交按钮,您需要像这样更改它:
<button onclick="prime()" type="button">click me</button>
关于JavaScript id 输出仅显示一秒钟然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15055396/