kodkontroll

JavaScript

2 svar · 216 visningar · startad av henkepenka

Medlem sedan sep. 2002125 inlägg
Trådstart#1

Hej, jag har en kontroll på om man skrivit in rätt kod när man submittar ett formulär.
Jag använder mig av denna kod:

var mysplitStr = document.annons.koder.value;
	
var splitsArr = mysplitStr.split(",");
ok = false;
for(var i=0; i<splitsArr.length; i++){
		
    if (splitsArr[i] == document.annons.betalkod.value){
	ok = true;
    }else{
	ok = false;
    }
}
if (ok==false){
     alert("Du skrev in fel betalkod");
     return false;
}

Men oavsätt om jag skriver in en kod som jag vet är rätt eller om jag skriver in en kod som jag vet är fel så får "ok" värdet false...
vart blir det fel?

Medlem sedan juni 20004 308 inlägg
#2

Ok, fältet koder splittas vid "," där du jämför varje del med fältet betalkod. Men eftersom du loopar genom alla delar och hela tiden skriver över variabeln ok så kommer det alltid att vara den sista delen som avgör vad ok blir. Skall det alltså räcka med att en av delarna är lika med betalkod? I så vall skippa else-satsen.

Medlem sedan sep. 2002125 inlägg
#3

Löste problemet med följande kod...
...

if (splitsArr == document.annons.betalkod.value){
betalok = true;
break;
}else{
betalok = false;
}

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)