26. april 2003 - 13:36Der er
10 kommentarer og 1 løsning
Validering af form - problemer!!
Hejsa Eksperter!
Jeg har lavet en validering af min formular, men hvis jeg lader det første felt så tomt så skriver den godt nok at jeg ikke har udfyldt det, trykker jeg så ok, så submitter den hele formen alligevel - MYSTISK...!!! Jeg er ikke særlig god til javaScript! So Be Nice :o)
if((document.forms[0].varenavn.value=='') && (error==0)) { alert('Du skal udfylde et varenavn!'); document.forms[0].varenavn.focus(); error = 1; }
if((document.forms[0].varebeskrivelse.value=='') && (error==0)) { alert('Du skal udfylde en beskrivelse af varen!'); document.forms[0].varebeskrivelse.focus(); error = 1; }
if((document.forms[0].mindstepris.value=='') && (error==0)) { alert('Mindste prisen skal være minimum 1'); document.forms[0].mindstepris.focus(); error = 1; }
if((document.forms[0].slutdato.value=='') && (error==0)) { alert('Du skal udfylde en slutdato for auktionen!'); document.forms[0].slutdato.focus(); error = 1; }
if((document.forms[0].tilstand.value=='') && (error==0)) { alert('Skiv venligst om varen er i god er dårlig stand!'); document.forms[0].tilstand.focus(); error = 1; }
if((document.forms[0].betaling.value=='') && (error==0)) { alert('Vil du ikke have penge for det?'); document.forms[0].betaling.focus(); error = 1; }
if((document.forms[0].placering.value=='') && (error==0)) { alert('Hvor befinder varen sig i landet?'); document.forms[0].placering.focus(); error = 1; }
if((document.forms[0].bemaerkninger.value=='') && (error==0)) { alert('Skriv venligst dine bemærkninger til handlen'); document.forms[0].bemaerkninger.focus(); error = 1; }
Du bør lade funktionen returnere true eller false. Så behøver du heller ikke kontrollere om der tidligere har været en fejl. Og så er det en god idé at bruge "this" til at angive hvilken formular det er, så du ikke får problemer hvis du lige pludselig har to formularer.
Hmm... Den submitter stadig hele formen, og ligger skidtet i databasen... Skal min Submit knap, hedde noget specielt?? Skal det overhovedet være en submit knap, måske bare en alm Button??
Du har lavet et eller andet som får den til at submitte uden om valideringen.
Jeg har lige kontrolleret valideringen med nedenstående, og det kører som det skal. <form method="POST" action="min_auktion.asp?Action=DB_opret_auktion&varegruppe_id=1" onsubmit="return validering(this);">
<script type="text/javascript">
function validering(iForm) { if (iForm.varenavn.value=='') { alert('Du skal udfylde et varenavn!'); iForm.varenavn.focus(); return false; }
if (iForm.varebeskrivelse.value=='') { alert('Du skal udfylde en beskrivelse af varen!'); iForm.varebeskrivelse.focus(); return false; }
if (iForm.mindstepris.value=='') { alert('Mindste prisen skal være minimum 1'); iForm.mindstepris.focus(); return false; }
if (iForm.slutdato.value=='') { alert('Du skal udfylde en slutdato for auktionen!'); iForm.slutdato.focus(); return false; }
if (iForm.tilstand.value=='') { alert('Skiv venligst om varen er i god er dårlig stand!'); iForm.tilstand.focus(); return false; }
if (iForm.betaling.value=='') { alert('Vil du ikke have penge for det?'); iForm.betaling.focus(); return false; }
if (iForm.placering.value=='') { alert('Hvor befinder varen sig i landet?'); iForm.placering.focus(); return false; }
if (iForm.bemaerkninger.value=='') { alert('Skriv venligst dine bemærkninger til handlen'); iForm.bemaerkninger.focus(); return false; }
<% ElseIf Request.QueryString("Action") = "kategori_valgt" Then %> <script type="text/javascript">
function validering() { error = 0;
if((document.forms[0].varenavn.value=='') && (error==0)) { alert('Du skal udfylde et varenavn!'); document.forms[0].varenavn.focus(); error = 1; }
if((document.forms[0].varebeskrivelse.value=='') && (error==0)) { alert('Du skal udfylde en beskrivelse af varen!'); document.forms[0].varebeskrivelse.focus(); error = 1; }
if((document.forms[0].mindstepris.value=='') && (error==0)) { alert('Mindste prisen skal være minimum 1'); document.forms[0].mindstepris.focus(); error = 1; }
if((document.forms[0].slutdato.value=='') && (error==0)) { alert('Du skal udfylde en slutdato for auktionen!'); document.forms[0].slutdato.focus(); error = 1; }
if((document.forms[0].tilstand.value=='') && (error==0)) { alert('Skiv venligst om varen er i god er dårlig stand!'); document.forms[0].tilstand.focus(); error = 1; }
if((document.forms[0].betaling.value=='') && (error==0)) { alert('Vil du ikke have penge for det?'); document.forms[0].betaling.focus(); error = 1; }
if((document.forms[0].placering.value=='') && (error==0)) { alert('Hvor befinder varen sig i landet?'); document.forms[0].placering.focus(); error = 1; }
if((document.forms[0].bemaerkninger.value=='') && (error==0)) { alert('Skriv venligst dine bemærkninger til handlen'); document.forms[0].bemaerkninger.focus(); error = 1; }
if(error == 0) document.forms[0].submit(); }
</script>
<% Set RS_varegrupper = Server.CreateObject("ADODB.RecordSet") RS_varegrupper.open "Select * From [varegrupper] WHERE varegruppe_id = " & Request("varegruppe_id") &"", Conn_market, 1, 3
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.