Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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。如何使警报显示在HTML表单而不是警报框上_Javascript_Html_Forms - Fatal编程技术网

Javascript和HTML。如何使警报显示在HTML表单而不是警报框上

Javascript和HTML。如何使警报显示在HTML表单而不是警报框上,javascript,html,forms,Javascript,Html,Forms,我对Javascript相当陌生,我正在尝试将此Javascript代码与HTML集成。此时,当您在浏览器中运行脚本时,它会询问5个数学问题,显示正确的数量,然后显示5个警报框,显示问题、答案、正确答案以及是否正确。现在我想做的是,我希望所有的问题都显示在HTML中,而不是在警报框中显示这些信息 因此HTML上的输出看起来像这些消息框实际上是本机对话框,是web浏览器的一部分,可以调用操作系统。你不能直接做你想做的事。然而,你可以用一个纯JS模式窗口来代替它们,这个窗口是当今众多工具包中的一个,

我对Javascript相当陌生,我正在尝试将此Javascript代码与HTML集成。此时,当您在浏览器中运行脚本时,它会询问5个数学问题,显示正确的数量,然后显示5个警报框,显示问题、答案、正确答案以及是否正确。现在我想做的是,我希望所有的问题都显示在HTML中,而不是在警报框中显示这些信息


因此HTML上的输出看起来像这些消息框实际上是本机对话框,是web浏览器的一部分,可以调用操作系统。你不能直接做你想做的事。然而,你可以用一个纯JS模式窗口来代替它们,这个窗口是当今众多工具包中的一个,比如TwitterBootstrap

这是一个关于你所描述的事情的例子。

函数ask(){
VarA=Math.floor(Math.random()*10)+1;
VarB=Math.floor(Math.random()*10)+1;
var op=[“*”、“+”、“/”、“-”][Math.floor(Math.random()*4)];
返回{
问题:“+a+”+op+“+b+”是多少,
ansGiven:prompt(“多少钱是“+a+”+op+”+b+”?”),
回答正确:评估(a+op+b),
get isCorrect(){返回this.ansGiven==this.ansCorrect}
};
}
var questions=[ask(),ask(),ask(),ask(),ask()]
总计=问题。长度,
correct=questions.filter(函数(ans){return ans.isCorrect}).length;
var result=“result
您正确地获得了“+correct+”/“+total+”
”; 问题。forEach(函数(q,i){ 结果+=(“问题”+(i+1)+):“+q问题 +“\n答案:”+q.ansGiven +“\n正确答案:”+q.ansCorrect +“\n您是”+((q.isCorrect)?“Correct!”:“error!”)+“
”; }); 记录(结果);
您可以尝试在函数中使用jquery,并使用
.html()
函数和
append()
函数

html()。即:

$('#question').html("<p>" + questionNum + ". What is " + equation + "?</p><input type='number' name='input'><br><input type='submit' value='Check Ans'>");
$('#question').html(“”+questionNum+”。什么是“+equation+”?


”);
然后,对于你的每一个结果,你可能想要做

$('#results').append("<p>Question " + questionNum + " : How much is " + equation + "? - " + result + "</p>");
$(“#结果”)。追加(问题“+questionNum+”:多少是“+equation+”?-“+result+”

”);
您的html可能如下所示:

<html>
  <body>
    <div id='question'></div>
    <div id='answer'></div>
  </body>
</html>

您的最终结果将是:

<html>
  <body>
    <div id='question'>
      <p>5. What is 4 / 2?</p><input type='number' name='input'><br>
      <input type='submit' value='Check Ans'>
    </div>
    <div id='answer'>
      <p>Question 1 : How much is 1 + 2? - You were right!</p>
      <p>Question 2 : How much is 9 * 21? - You were wrong!</p>
      <p>Question 3 : How much is 1 + 42? - You were right!</p>
      <p>Question 4 : How much is 32 - 9? - You were right!</p>
    </div>
  </body>
</html>

五,。什么是4/2?


问题1:1+2等于多少你是对的

问题2:9*21是多少你错了

问题3:1+42等于多少你是对的

问题4:32-9是多少你是对的

编辑:JSFiddle


函数在第17行和第19行使用两个
append()
s,一个表示正确,另一个表示不正确。有了这个,下一个答案将被添加到分区的底部。即:1、2、3、4、5、6、7等。在回答了这么多问题后,最新的答案将从屏幕上消失。如果你想最新的问题显示在顶部,即:7,6,5。。。然后将两个附件都更改为
prepend()

很好!有没有一种方法可以使用@James为您添加一个jsfiddle来让这个演示工作正常。很好!有没有办法让它停在某个数字上,你认为for循环可以吗?当它达到5时停止,并发出一条消息说你已经完成了测试?好的。所以这可能是个糟糕的问题,但当我将所有这些保存到html文档时。该页面未加载。我注意到您使用jquery来运行程序。如何将jquery实现到html文档中。我已经下载了jquery 1.11.0,并用代码包装了脚本,但这对我来说不起作用。我通常选择从谷歌托管的库中加载jquery,这样我就不必下载任何东西<代码>
。一定要把它放在头标签上。如果您使用的是Chrome(我经常这样做),右键单击页面并查看源代码。然后单击“控制台”选项卡。任何javascript错误都会出现。
<html>
  <body>
    <div id='question'></div>
    <div id='answer'></div>
  </body>
</html>
<html>
  <body>
    <div id='question'>
      <p>5. What is 4 / 2?</p><input type='number' name='input'><br>
      <input type='submit' value='Check Ans'>
    </div>
    <div id='answer'>
      <p>Question 1 : How much is 1 + 2? - You were right!</p>
      <p>Question 2 : How much is 9 * 21? - You were wrong!</p>
      <p>Question 3 : How much is 1 + 42? - You were right!</p>
      <p>Question 4 : How much is 32 - 9? - You were right!</p>
    </div>
  </body>
</html>