JavaScript id输出只显示一秒钟,然后消失

JavaScript id output only displays for a second then dissapears

本文关键字:然后 消失 一秒钟 显示 id 输出 JavaScript      更新时间:2023-09-26

我正在制作一个简单的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>

我刚刚尝试了代码,结果很简单:当你点击按钮时,你的表单就会被发布。

在按钮onClick中,写onClick="return prime();"并添加

return false;

在javascript函数中。

在表单标记中,只需添加onsubmit="return false;",如下所示-

<form name="frm1" onsubmit="return false;" >

这将阻止您提交表单。