2017-06-30 3 views
1

Je suis en train d'utiliser deux scripts java sur la même page que mon code est:Appeler un script après une autre

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

Ici, je travaille avec Node.js donc premier script est de demander une question au serveur et le rendre à la page html. Et deuxième script donne une alerte lorsque l'utilisateur clique sur le sur le bouton de soumission, mais ce deuxième script ne se fait pas appeler pouvez-vous s'il vous plaît dire ce qui ne va pas avec ce script.

+0

Vous avez vraiment pas besoin de deux scripts pour le faire. vous pouvez mettre le deuxième script aussi dans le premier script lui-même –

+0

tag de script à l'intérieur d'un autre script ne fonctionne pas. @Dinesh – hdc

+0

ne mettez pas tag de script enite dans un autre script tag.copiez votre seul code js –

Répondre

0

Vous n'avez vraiment pas besoin de deux balises de script séparées. Gardez le deuxième script à l'intérieur de socket.emit du premier script.

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

+0

Oui cela fonctionne Merci! – hdc

+0

Content de vous aider. Je vous recommande d'en savoir plus sur les rappels. comment gérer asynchrone. –