2016-08-09 8 views
4

オンライン試験のページに「タイマー」を設定しようとしています.HTMLとJavaScriptを使用して、下のコードを参照してください。 しかし、私は問題を抱えて:javascriptとhtmlを使用したオンライン試験のためのタイマーの設定

問題:

A)私は審査官が時間内に試験を完了することができません.IF試験は一定の時間を上に完了する必要があり、固定時間で時間を表示する必要があり、そのページを「Time up」に関する警告メッセージが表示され、ユーザーが試行した合計回答の最後のページと、そのユーザーが試験を終了した段階と時間を示す必要があります。

b)は、我々はを次のように実行している見ることができます「あなたの残り時間がある:1分:53秒」私はこのあなたの左のように表示され、それ.But 分= 1を保持している私のページの下部に時間は0分:59秒私はmin = 1を維持していたので、

c)ここでは、時間、分、秒の変更があれば、時間、分、秒で完璧な時刻を表示します。

JSFiddle:https://jsfiddle.net/fs6xaeox/

コード:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UFT-8"> 
<link rel="stylesheet" href="menu.css"> 
<link rel="stylesheet" href="layout.css"> 


<script> 
var pos = 0, test, test_status, question, choice, choices, chA, chB, chC, correct = 0; 

var questions = [ 
     [ "Which of the following a is not a keyword in Java ?", "class", "interface", "extends", "C" ], 

    [ "Which of the following is an interface ?", "Thread", "Date", "Calender", "A" ], 

    [ "Which company released Java Version 8 ?", "Sun", "Oracle", "Adobe", "A" ], 

    [ "What is the length of Java datatype int ?", "32 bit", "16 bit", "None", "C" ], 

    [ "What is the default value of Java datatype boolean?","true","false","0","A"] 
]; 
function _(x){ 
    return document.getElementById(x); 
} 

function renderQuestion(){ 
    test = _("test"); 

    var showscore=Math.round(correct/questions.length*100); 


    if(pos >= questions.length){ 
     document.getElementById("online_start").src = "animatedthankyou.gif"; 

     test.innerHTML = "<h3>You got "+correct+" correct of "+questions.length+" questions</h3>"; 
     test.innerHTML += "<h3> Your Grade : "+showscore +"% </h3>"; 
     test.innerHTML +="<h4>Exam Finished in Time:" + sec+" Seconds</h4>"; 
     test.innerHTML += "<button onclick='EndExam()'>End the Exam</button>"; 
     _("test_status").innerHTML = "<h3>Test Completed</h3>"; 
     pos = 0; 
     correct = 0; 



     clearTimeout(tim); 
     //document.getElementById("endtime").innerHTML = "<h4>Finished Time:"+min+" Minutes :" + sec+" Seconds</h4>"; 
     document.getElementById("starttime").style.display += 'none'; 
     document.getElementById("showtime").style.display += 'none'; 
     //document.getElementById("showtime").style.display += 'block'; 


     return false; 
    } 
    _("test_status").innerHTML = "<h3>Question "+(pos+1)+" of "+questions.length+"</h3>"; 
    question = questions[pos][0]; 
    chA = questions[pos][1]; 
    chB = questions[pos][2]; 
    chC = questions[pos][3]; 
    test.innerHTML = "<h3>"+question+"</h3>"; 
    test.innerHTML += "<input type='radio' name='choices' value='A'> "+chA+"<br>"; 
    test.innerHTML += "<input type='radio' name='choices' value='B'> "+chB+"<br>"; 
    test.innerHTML += "<input type='radio' name='choices' value='C'> "+chC+"<br><br>"; 
    test.innerHTML += "<button onclick='checkAnswer()'>Next</button><br><br>"; 


} 
function checkAnswer(){ 
    choices = document.getElementsByName("choices"); 
    choice=-1; 
    for(var i=0; i<choices.length; i++){ 
     if(choices[i].checked){ 
      choice = choices[i].value; 
     } 
    } 
    if(choice == questions[pos][4]){ 
     correct++; 
    } 
    pos++; 
    renderQuestion(); 
} 

window.addEventListener("load", renderQuestion, false); 


function EndExam(){ 

location.href="Loginpage.htm"; 
} 


    var tim; 
     var showscore=Math.round(correct/questions.length*100); 
     var min = 1; 
     var sec = 60; 
     var f = new Date(); 
     function starttime() { 
      showtime(); 
      document.getElementById("starttime").innerHTML = "<h4>You started your Exam at " + f.getHours() + ":" + f.getMinutes()+"</h4>"; 
     } 
     function showtime() { 
      if (parseInt(sec) > 0) { 
       sec = parseInt(sec) - 1; 
       document.getElementById("showtime").innerHTML = "Your Left Time is :"+min+" Minutes :" + sec+" Seconds"; 
       tim = setTimeout("showtime()", 1000); 
      } 
      else { 
       if (parseInt(sec) == 0) { 
        min = parseInt(min) - 1; 
      document.getElementById("showtime").innerHTML = "Your Left Time is :"+min+" Minutes :" + sec+" Seconds"; 
        if (parseInt(min) == 0) { 
         clearTimeout(tim); 
      alert("Time Up"); 


      /*_("test_status").innerHTML = "Test Completed"; 
      test.innerHTML = "<h2>You got "+correct+" of "+questions.length+" questions correct</h2>"; 
      test.innerHTML = "<h2>You got "+showscore +"% out of "+questions.length+"</h2>"; 
      test.innerHTML = "<button onclick='EndExam()'>End the Exam</button>"; 
      pos = 0; 
      correct = 0; 
      clearTimeout(tim); 
      document.getElementById("endtime").innerHTML = "You Finished exam at Time is :"+min+" Minutes :" + sec+" Seconds"; 
      document.getElementById("starttime").style.display += 'none'; 
      document.getElementById("showtime").style.display += 'none'; 
      //document.getElementById("showtime").style.display += 'block'; 
      return false;*/ 

         window.location.href = "Loginpage.htm"; 
        } 
        else { 
         sec = 60; 
         document.getElementById("showtime").innerHTML = "Your Left Time is :" + min + " Minutes :" + sec + " Seconds"; 
         tim = setTimeout("showtime()", 1000); 
        } 
       } 

      } 
     } 




</script> 
</head> 

<body onload="starttime()" > 

<div id="Holder"> 
<div id="Header"></div> 
<div id="NavBar"> 
<nav> 
<ul> 
<li><a href="Loginpage.htm"> Login</a></li> 
<li><a href="Registrationpage.htm">Registration</a></li> 
</ul> 
</div> 


<div id="Content"> 
<div id="PageHeading"> 
<h1><marquee direction="right" behavior="alternate">All the Best</marquee></h1> 
</div> 

<div id="ContentLeft"> 
<h2></h2><br> 
<img id="online_start"> 
<br> 
<h6>Online Examination System(OES) is a Multiple Choice Questions(MCQ) based 
examination system that provides an easy to use environment for both 
Test Conducters and Students appearing for Examination.</h6> 
</div> 
<div id="ContentRight"> 
<section class="loginform_cf"> 
<table> 
    <tr> 
      <td id="test_status" style="text-align:left" ></td> 
      <td id="starttime" style="text-align:right"></td> 
    </tr> 

    <tr> 
    <td id="test" colspan="2"></td> 
    </tr> 

</table>  
<div id="showtime" ></div> 
</section> 
</div> 

</div> 


<div id="Footer">Developed by - K.P.RAJU</div> 
</div> 
</body> 
</html> 

は、この問題の任意の助けをすることができます。

+0

ここにあなたのフィドルを調整デモ – brk

+0

更新フィドル、https://jsfiddle.net/fs6xaeox/4/ totalsecを作成してください導入された分と秒はtotalsecから計算されます – lordkain

+0

注意してください、誰もあなたの質問への答えを読むことができます。彼らは単に開発者のツールを開く必要があります.....私は、サーバー側で正解のチェックを行うことをお勧めし、一度にユーザーあたりの正解のチェックを制限します。 – LEDfan

答えて

3

まず、PHPを使用したり、テストビルド用のプログラムを使用する方がよい場合があります。これは単に自分の時間を左に入力するか、時間の上の部分をバイパスすることでタイマーを騙すことができるからです。そして、私がこれが発見されたら、文字通りあなたのテストを受けることはないと言うとき、私は学生として私を信じています。

ここでは、時刻を表示するときに、秒の値を呼び出すと、彼らは唯一、左の60秒を持っていることを指定するのではなく、実際の現在の時刻され

  else { 
       sec = 60; 

時間れることになって?

tim = setTimeout(".... 

私は他のものを逃したかもしれないので、戻って取得し、私はちょうどその全員の安全なテイク通知する便利

+0

また、時間内に完了しない場合は、「未回答」の値を追加することもできます。また、応答、成績、時間の開始(おそらく日付)、時間の終了(日程)などを簡単に取得できるように、ほとんどのWebHostsが提供するMySQLデータベースにデータを設定することもできます。 – 4g0tt3nSou1

+0

また、ページをリダイレクトしますこのファイルがあなたのWebサーバの同じディレクトリ内で実行されていない限り、404エラーを返します。そして、あなたは "C"をよく言い換えることができます – 4g0tt3nSou1

1

どのような方法であれば、ここでの時間を操作し、完全な答えを見ることができますを教えてください。これがコースに加入するための事前チェックであれば、これは「良い」方法です。しかし、これをライブ試験に使用しないでください。

A、秒を追加し、そう

var showcurtime = moment(); 
    var curtimeformat = showcurtime.format('h:mm:ss a'); 
    var showendtime = showcurtime.add(totalsec, 's'); 
    var endtimeFormat = showendtime.format('h:mm:ss a'); 

    console.log(curtimeformat); 
    console.log(endtimeFormat); 

B、ショーの時間は

を左に表示する合計時間を維持するためのライブラリーの

メイク使用を完了するためのショータイムと関数の先頭で減算するshowtime()

C書式時刻

私はあなたに瞬間を使うことをお勧めします。jsで時間をフォーマットします。車輪を再構築しないでください。あなたは

moment().format('h:mm:ss a'); 

この構文を使用することができ、時間を表示するために、私は

https://jsfiddle.net/fs6xaeox/13/

+0

こんにちは。タイマーの問題を助けてくれてありがとう。しかし、以下の機能は正しく動作していません。開始時刻と終了時刻を表示するのではありません。だから私は両方を表示するのを助ける – user3172464

+0

function starttime(){ showtime(); var showcurtime = moment()。書式( 'h:mm:ss a'); \t \t var curtimeformat = showcurtime.format( 'h:mm:ss a'); \t \t var showendtime = showcurtime.add(totalsec、 's'); \t \t var endtimeFormat = showendtime.format( 'h:mm:ss a'); \t \t document.getElementById( "starttime")。innerHTML = "

" + curtimeformat + "

"で試験を開始しました。 \t \t document.getElementById( "endtime")。innerHTML = "

" + endtimeFormat + "

"で試験を完了してください。あなたが開始と終了時刻を参照していますフィドルで \t \t \t \t \t \t } – user3172464

+0

、私は別の行に終了時間を置くためにバイオリンを調整 – lordkain

関連する問題