webForumDet fria alternativet

kodkontroll

JavaScript

2 svar · 211 visningar · startad av henkepenka

Medlem sedan sep. 2002125 inlägg
Frågan#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;
}

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)