Jeg skal bruge en funktion til dynamisk at validere formfelter.
Formfelterne udskrives fra en database, så jeg ved ikke på forhånd hvor mange formfelter der er på en side, og hvad deres navne er. Når jeg submitter de enkelte forme, så skal der ske automatisk feltvalidering på dem.
Er der en frisk haj der har de gyldne ord til hvordan det kan løses?
Eksempel, hvor du bare har en masse tekst-felter og der 'bare' skal skrives noget i dem alle:
function valider(f){ var inps=document.getElementsByTagName('INPUT'); for (i=0;i<inps.length;i++){ if (inps[i].value==""){ alert("Udfyld alle felter"); inps[i].focus(); return false; } } }
nemmere for fru Hansen, som sidder og bruger ti minutter på at udfylde 100 felter og så skal vente på at hendes 28.8-modem bruger først 3 minutter på at sende og derefter genloade hele siden og skal starte forfra ???
I databasen indikerer jeg om hvert enkelt felt skal valideres eller ej. Kan jeg på en eller anden måde lægge feltnavnene ind i et array når jeg skriver felterne ud på skærmen, og hvis det er angivet at de skal tjekkes, så når formen submittes loopes dette array igennem i en valideringsfunktion?
Lav et skyggefelt, med type=hidden -- placer dem _lige_ efter hinanden, så kan vi finde den værdi (altså skal det valideres?-) og så reagere ordentligt ...
Eksempel, hvis inputboxen og hidden input har samme navgivningsskema:
function valider(f){ var intx; var inhd; var inps=document.getElementsByTagName('INPUT'); for (i=0;i<inps.length;i++){ if (inps[i].type=="text"){ intx[intx.length]=inps[i] }else{ (inps[i].type=="hidden"){ intx[inhd.length]=inps[i] } } for (i=0;i<intx.length;i++){ for (j=0;j<inhd.length;j++){ if (intx[i].name.substring(3)==inhd[j].name.substring(3) && inhd[j]=="validate" && intx[i]==""){ alert("Udfyld alle felter"); intx[i].focus(); return false; } } } }
Med samme endelse på text og hidden-boxene, f.eks txt01 og hid01
hth jes
Synes godt om
Slettet bruger
20. maj 2003 - 16:35#9
Du kan også bare give de tekstfelter, der skal valideres, en bestemt class.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.