howieD Skrevet 17. november 2008 Del Skrevet 17. november 2008 (endret) Hei, Sliter med å lage et script som skal telle antall input feil i et skjema. Scriptet er laget slik at det er 5 forhåndsprogrammerte telefonnumre, kontonumre og KID numre som dukker opp på skjermen. Brukerne skal da skrive inn manuelt det nunmeret som dukker opp på skjermen. Scriptet skal deretter validere det brukeren har tastet inn, og telle antall feil i input. Det er egentlig kun feiltellingsdelen av scriptet som mangler nå. Setter stor pris på om noen kan stille med litt ekspertise her På forhånd takk! Her er scriptet: <!-- TWO STEPS TO INSTALL TYPING TEST: 1. Copy the coding into the HEAD of your HTML document 2. Put the last code into the BODY of your HTML document --> <!-- STEP ONE: Add this code into the HEAD of your HTML document --> <html> <HEAD> <script LANGUAGE="JavaScript"> <!-- Original: Michael Tartaglia <[email protected]> --> <!-- Web Site: http://www.geocities.com/SiliconValley/Horizon/5235 --> <!-- This script and many more are available free online at --> <!-- The JavaScript Source!! http://javascript.internet.com --> <!-- Begin msg = new Array("7010 34 38791", "6050 50 91620", "7100 54 28739", "9001 10 49318", "3910 21 63202") word = 11 function m() { msg = new Array("7010 34 38791", "6050 50 91620", "7100 54 28739", "9001 10 49318", "3910 21 63202") word = 11 } function e() { msg = new Array("29408050387245160309", "41950936218746064327", "58318720287350218321", "72601834120648136109", "92049285174129270194") word = 20 } function s() { msg = new Array("92 88 61 25", "22 92 84 10", "91 36 93 80", "70 23 71 05", "81 50 15 39") word = 8 } function beginIt() { randNum = Math.floor((Math.random() * 10)) % 4 msgType = msg[randNum] day = new Date(); startType = day.getTime(); document.theForm.given.value = msgType document.theForm.typed.focus(); document.theForm.typed.select(); } function cheat() { alert("!"); document.theForm.typed.focus(); } function stopIt() { dayTwo = new Date(); endType = dayTwo.getTime(); totalTime = ((endType - startType) / 1000) spd = Math.round((word/totalTime) * 60) if (document.theForm.typed.value == document.theForm.given.value) { alert("\nRiktig! Du skrev en setning med " + word + " tall på " + totalTime + " sekunder, en hastighet på ca " + spd + " tall i minuttet!") } else { //alert("You made an error, but typed at a speed of " + spd + " words per minute.") alert("\nDu skrev feil. Du skrev en setning med " + word + " tall på " + totalTime + " sekunder, en hastighet på ca " + spd + " tall i minuttet!") } } // End --> </SCRIPT> </HEAD> <!-- STEP ONE: Put this code into the BODY of your HTML document --> <BODY> <CENTER> <FORM name="theForm"> <TABLE BORDER=3 CELLSPACING=0 CELLPADDING=0> <TR> <TD>Velg tallgruppe</TD> <TD align=center><input type=radio name="sme" value="tlf" onClick="s()" checked>Tlf.nr <input type=radio name="sme" value="konto" onClick="m()">Kontonr. <input type=radio name="sme" value="kid" onClick="e()">KID.nr.</TD> </TR> <TR><TD colspan=2><BR> <center><input type=button value="Start Skrivetesten" name="start" onClick="beginIt()"></center><P> <textarea name="given" cols=53 rows=3 wrap=on onFocus="cheat()"></textarea></TD> </TR> <TR><TD colspan=2><center><input type=text name="typed" size=45> <input type=button value="FERDIG" name="stop" onClick="stopIt()"></center></TD> </TR> </TABLE></FORM> </CENTER> <p><center> <font face="arial, helvetica" size="-2">Free JavaScripts provided<br> by <a href="http://javascriptsource.com">The JavaScript Source</a></font> </center><p> </body> <!-- Script Size: 3.33 KB --> </html> Endret 17. november 2008 av Haavard82 Lenke til kommentar
cbastus Skrevet 18. november 2008 Del Skrevet 18. november 2008 Har du tenkt til å telle feilene mens bruker skriver eller kun det ferdige resultatet? Om du skal telle de mens man skriver er det greit å bruke en keysniffer eller noe liknende. Den bør i så fall ta høyde for backspace. document.onkeydown = keyPress function keyPress(e){ var key = (window.event) ? window.event.keyCode : e.which; switch(key){ case 8: //Backspace //sumfin break; case 13: //Enter //sumfin else break; default: //sjekk inntastet key mot ønsket produkt. break; } } Om du vil sjekke når bruker er ferdig: var fasit = "fasit verdi"; var test = "inputField".value; var errors = 0; for(i=0;i<fasit.length;i++){ if(fastit.charAt(i) != test.charAt(i)) errors++; } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå