1

フォームに 2 つの数値を入力すると、関数は 2 つの数値の合計が素数であるかどうかを判断する単純な JavaScript 関数を作成しています。それはすべて機能しますが、関数が document.getElementById("demo").innerHTML でメッセージを表示し、

Web ページに 1 秒間だけ表示され、その後消えます。もう一度ボタンをクリックするまでメッセージが残るようにしたい。このサイトと他のサイトを検索しましたが、何も見つかりませんでした。

コードは次のとおりです。

<!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>
4

3 に答える 3

4

問題は、「クリックしてください」ボタンが実際にフォームを送信しているため、ページがリロードされることです(属性<form>がないため、同じページに送信されます)。actionタグの<button>デフォルトはtype="submit"。です。送信ボタンではないようにするには、次のように変更する必要があります。

<button onclick="prime()" type="button">click me</button>

于 2013-02-24T19:05:40.620 に答える
1

コードを試してみましたが、何が起こるかは簡単です。ボタンをクリックするとフォームが投稿されます。

onClickボタンに、onClick = "return prime();"と記述します。を追加します

return false;

javascript関数で。

于 2013-02-24T19:06:32.217 に答える
0

form タグに onsubmit="return false;" を追加するだけです。このような-

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

これにより、フォームが送信されなくなります。

于 2013-02-24T19:43:16.390 に答える