Gå til innhold

Telle antall feil i inputverdier


Anbefalte innlegg

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

 

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 av Haavard82
Lenke til kommentar
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...