webForumDet fria alternativet

kodkontroll

2 svar · 209 visningar · startad av henkepenka

henkepenkaMedlem sedan sep. 2002132 inlägg
#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?

JojoxxMedlem sedan juni 20004 306 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.

henkepenkaMedlem sedan sep. 2002132 inlägg
#3

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

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

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb