javascript - 一个接一个地调用脚本

标签 javascript html node.js submit addeventlistener

我试图在同一页面上使用两个java脚本,我的代码是:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>       
    <script src="socket.js"></script>
</head>
<body>    
  <div id="questionbox" width="100%"><%=data%></div>
</body>
</html>
<script>
  var socket = io.connect('http://localhost:3000');    

  socket.emit('questionreq',{res:'send me question'});
  questionbox = document.getElementById('questionbox');

  socket.on('question',function(res){
    question = res.question;
    optA = res.A;
    optB = res.B;
    optC = res.C;
    optD = res.D;
    answer = res.ans;

    questionbox.innerHTML += '<br>' + question + '<br>A:<input type="radio" name="question" id="A" value="A">' + optA + '<br>B <input type="radio" id="B" name="question" value="B">' + optB + '<br>'+ 'C :<input type="radio" name="question" id="C" value="C">' + optC + '<br>'+'D :<input type="radio" name="question" id="D" value="D">' + optD + '<br><input type="submit" id="submit" value="submit">'
  });    
</script>
<script>                                          
   btnSubmit=document.getElementById("submit");                                          
   btnSubmit.addEventListener('click', function() {                                          
     if (document.getElementById("A").checked)
       useranswer="A";
     else if (document.getElementById("B").checked)
       useranswer="B";
     else if (document.getElementById("C").checked)
       useranswer="C";
     else
       useranswer="D";
     if (1) {
       alert('correct!!!');
       socket.emit('correct',{res:'I am correct'});
     }
   });
</script>

这里我正在使用node.js,所以第一个脚本是向服务器请求问题并将其呈现到html页面。当用户单击提交按钮时,第二个脚本会发出警报,但是第二个脚本没有被调用,您能告诉我这个脚本出了什么问题吗?

最佳答案

你真的不需要两个单独的脚本标签。将第二个脚本保留在第一个脚本的 socket.emit 内。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


     <script src="socket.js"></script>



</head>
<body>

<div id="questionbox" width="100%"><%=data%></div>

</body>
</html>
<script>
        var socket=io.connect('http://localhost:3000');

          socket.emit('questionreq',{res:'send me question'});
          questionbox=document.getElementById('questionbox');

        socket.on('question',function(res){
         question=res.question;
         optA=res.A;
         optB=res.B;
         optC=res.C;
         optD=res.D;
         answer=res.ans;
         
         questionbox.innerHTML+='<br>'+question+'<br>A:<input type="radio" name="question" id="A" value="A">'+optA+'<br>B <input type="radio" id="B" name="question" value="B">'+optB+'<br>'+'C :<input type="radio" name="question" id="C" value="C">'+optC+'<br>'+'D :<input type="radio" name="question" id="D" value="D">'+optD+'<br><input type="submit" id="submit" value="submit">';
var btnSubmit=document.getElementById("submit"); 

btnSubmit.addEventListener('click',function(){
                                      if(document.getElementById("A").checked)
                                        useranswer="A";
                                        else if(document.getElementById("B").checked)
                                        useranswer="B";
                                        else if(document.getElementById("C").checked)
                                        useranswer="C";
                                        else
                                         useranswer="D";
                                       if(1){
                                           alert('correct!!!');
                                          socket.emit('correct',{res:'I am correct'});
                                       }
                                       
                                      });
           });
                                     
</script>

关于javascript - 一个接一个地调用脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839133/

相关文章:

javascript - 窗口中的“ontouchstart”在 MS Edge 浏览器手机模拟器中返回 true,但未触发 touchstart 事件

javascript - 如何修改 Webpack 配置以从文件夹名称加载模块

javascript - 在 HTML 网页中显示 Firebase 记录

css - 将 div 定位在其他 div 中

Node.js for 循环内的 for 循环

javascript - 某些 Mac 机器浏览器上的 Angularjs CORS 问题

javascript - 没有 Javascript 的 capybara Click_Button 失败

php - 如何通过文本搜索实现基于 Web 的查找文件数据库

Jquery:通过扩展 Div 向下推固定定位的 div?

node.js - lambda 函数中的 AWS 和 web3 部署错误