Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数不更改HTML_Javascript_Html - Fatal编程技术网

Javascript函数不更改HTML

Javascript函数不更改HTML,javascript,html,Javascript,Html,我很难用这个脚本永久地显示“是”或“否”。谁能告诉我为什么 <!DOCTYPE html> <html lang="en-US"> <head> <title>Project</title> </head> <body> <h1>Is it prime?</h1> <hr> <p>This tool was designed to determine if

我很难用这个脚本永久地显示“是”或“否”。谁能告诉我为什么

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title>Project</title>
</head>
<body>
<h1>Is it prime?</h1>
<hr>
<p>This tool was designed to determine if a number is prime </p>
<form>
    <input type="number" id="Number" name="enterednumber"/>
    <input type="submit" id="theButton" onclick="isitprime(this.form.enterednumber.value)"/>
</form>
<p id="answer"></p>
</body>
<script>
function isitprime(v)
{
var isprime=0;
for(i=2, i<v, i++)
    {
    if(v%i==0)
        isprime=1;
    }
if(isprime==1)
    document.getElementById("answer").innerHTML="No";
else
    document.getElementById("answer").innerHTML="Yes";
}
</script>
</html>

基本上,我试图将输入的值传递给我的函数isitprime,然后弹出“是”或“否”的文本

我看到的第一件事是,在脚本中,您正在查找id为maybe的元素。但是在html中,您希望输出显示的位置有一个答案id

您也不希望在另一个主体元素中使用主体元素。相反,只需使用div作为答案,如下所示:

<div id="answer"></div>
也在你的循环使用;而不是

for(i=2; i<v; i++)

我怀疑您可能会看到的另一个问题是表单已提交,这意味着在设置了yes/no值后,页面将被刷新。您可以通过在调用方法后返回false或从方法返回false来抑制表单提交。像这样:

<body>
  <h1>Is it prime?</h1>
  <hr>
  <p>This tool was designed to determine if a number is prime </p>
  <form>
    <input type="number" id="Number" name="enterednumber"/>
    <input type="submit" id="theButton" onclick="return isitprime(this.form.enterednumber.value)"/>
  </form>
  <p id="answer"></p>
</body>
<script>
function isitprime(v) {
  var isprime=0;
  for(i=2; i<v; i++) {
    if(v%i==0) {
        isprime=1;
    }
  }
  if(isprime==1) {
    document.getElementById("answer").innerHTML="No";
  }
  else {
    document.getElementById("answer").innerHTML="Yes";
  }
  return false; // make sure that the form doesn't get submitted             
}
</script>

或者,您可以在页面加载上运行isitprime函数,该函数可以从查询字符串中获取值

是的,您只需要在这样的函数之后返回false

<input type="submit" id="theButton" onclick="isitprime(this.form.enterednumber.value);return false;"/>

你有其他的方法来形成动作标签,你可以更详细地了解它

maybe元素在哪里?为什么要嵌套实体元素?这是无效的标记,每个文档必须只有一个body元素。hr是一个空元素,即它没有结束标记!这个可能的id在哪里?对不起,我一直在切换id来测试它,看看有什么问题。固定的显然,我在这方面很新。谢谢你,这是for循环,我没有意识到。有没有办法让yes/no永久化,而不是立即消失?你还在用标签来显示yes/no吗?你不必那样做。页面上只能有一个标记。改用a。下面@mrrogers给出的答案很可能是您的结果被否定的原因。