Vraag & Antwoord

Webprogrammeren & scripting

[JAVASCRIPT] formulier validatie

Hoi, Ik heb een formulier (met bestelde items) met allemaal tekstvelden waar een aantal in komt te staan. Met de volgende code kan ik controleren of de velden leeg zijn. ### Javascript code ### function checkf(which) { var ok=true; if (document.images) { for (i=0;i<which.length;i++) { var tempobj=which.elements[i]; if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==0)) { ok=false; break; } } } if (!ok) { alert("Dit veld is nog niet ingevuld!\n\nVul een aantal in!"); tempobj.focus(); return false; } else { return true; } } Ik roep deze functie aan in de form tag. <form name="editform" action="XXX.php" onsubmit="return checkf(this)">. Dit werkt allemaal perfekt. Mijn formulier ziet er verder als volgt uit. ARTIKEL 1: <input type="hidden" name="h1" value="4"> <input type="text" name="1" value=""> ARTIKEL 2: <input type="hidden" name="h2" value="7"> <input type="text" name="2" value=""> ARTIKEL 3: <input type="hidden" name="h3" value="2"> <input type="text" name="3" value=""> In de hidden velden staat het bestelde aantal. Dus van artikel 2 zijn er 7 stuks besteld. Ik wil nu graag dat al het formulier wordt verstuurd, er wordt gecontroleerd het ingevulde aantal niet hoger is dan het bestelde aantal. Dus bij artikel 2 mag maximaal 7 ingevuld worden, en bij artikel 3 maximaal 2. Ik denk dat dat zou moeten kunnen met de bovenstaande functie, maar weet niet hoe ik hem om moet bouwen. Ik zat te denken aan &&tempobj.value=='' te vervangen door iets als &&tempobj.value>htempobj'.value htempobj zal echter niet gevonden worden. Hoe kun je aan de variable tempobje de h toevoegen, zodat javascript hem ziet als een geldige variable?

Anoniem
DeltaTwoZero