Avatar billede zantiago Nybegynder
26. april 2003 - 13:36 Der 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)

---------->
<form method="POST" action="min_auktion.asp?Action=DB_opret_auktion&varegruppe_id=<%=RS_varegrupper("varegruppe_id")%>" onsubmit="validering();return false;">

<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>
Avatar billede mortrr Praktikant
26. april 2003 - 14:21 #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.

<form method="POST" action="min_auktion.asp?Action=DB_opret_auktion&varegruppe_id=<%=RS_varegrupper("varegruppe_id")%>" 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;       
  }

  return true;
}

</script>
Avatar billede mortrr Praktikant
26. april 2003 - 14:22 #2
Det burde nok have været et svar.
Avatar billede zantiago Nybegynder
26. april 2003 - 14:28 #3
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??
Avatar billede mortrr Praktikant
26. april 2003 - 14:34 #4
Har du husket at ændre i <form tagget? onsubmit="return validering(this);">

Hvordan ser din submit knap ud?
Du må ikke have en form.submit() nogen steder, da den vil submitte uden af onsubmit køres.
Avatar billede zantiago Nybegynder
26. april 2003 - 14:37 #5
<input type="submit" value="Opret Auktion" name="B1" id="sites">
Avatar billede mortrr Praktikant
26. april 2003 - 14:46 #6
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;       
  }

  return true;
}

</script>
<br><input name="varenavn">
<br><input name="varebeskrivelse">
<br><input name="mindstepris">
<br><input name="slutdato">
<br><input name="tilstand">
<br><input name="betaling">
<br><input name="placering">
<br><input name="bemaerkninger">
<input type="submit" value="Opret Auktion" name="B1" id="sites">
</form>

Du kan eventuelt vise hele din formular, som den ser ud nu.
Avatar billede zantiago Nybegynder
26. april 2003 - 16:43 #7
<%
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

Set RS_kat = Server.CreateObject("ADODB.RecordSet")
RS_kat.open "Select * From [kategorier] WHERE kategori_id = " & RS_varegrupper("kategori_id") &"", Conn_market, 1, 3
%>   
<form method="POST" action="min_auktion.asp?Action=DB_opret_auktion&varegruppe_id=<%=RS_varegrupper("varegruppe_id")%>" onsubmit="return validering(this);">
                    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="226">
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Kategori:</font></td>
                        <td width="80%" valign="top" height="18">
                        <%= RS_kat("navn")%></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font face="Arial" size="2">Varegruppe :</font></td>
                        <td width="80%" valign="top" height="18">
                        <%= RS_varegrupper("navn")%></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Varenavn:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="varenavn" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="64">
                        <font size="2" face="Arial">Varebeskrivelse:</font></td>
                        <td width="80%" valign="top" height="64">
                        <textarea rows="10" name="varebeskrivelse" cols="80" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Mindstepris:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="mindstepris" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="14">
                        <font face="Arial" size="2">Billede:</font></td>
                        <td width="80%" valign="top" height="14">
                        <%
Set RSpicture = Server.CreateObject("ADODB.RecordSet")
RSpicture.open "Select * from [billeder] WHERE uploadedaf = '" & session("username") &"' order by billednummer desc", Conn_market, 1, 3
%>
<select id="sites" tabIndex="1" name="Billede">
<option value="1" selected>Vælg billede</option>
<%

Do while not RSpicture.EOF

%>
<option value="<%=RSpicture("billednummer")%>"><%=RSpicture("Kaldenavn")%></option>
<%
RSpicture.MoveNext
Loop
RSpicture.Close
%></select></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Slutdato:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" id="sites" name="slutdato" size="20"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Tilstand:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="tilstand" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="16">
                        <font size="2" face="Arial">Betaling:</font></td>
                        <td width="80%" valign="top" height="16">
                        <textarea rows="2" name="betaling" cols="40" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Placering:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="placering" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="24">
                        <font size="2" face="Arial">Bemærkninger omkring handlen:</font></td>
                        <td width="80%" valign="top" height="24">
                        <textarea rows="4" name="bemaerkning" cols="40" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18"></td>
                        <td width="80%" valign="top" height="18">
                          <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
                            <tr>
                              <td width="35%">
                              &nbsp;</td>
                              <td width="65%">
                              &nbsp;</td>
                            </tr>
                            <tr>
                              <td width="35%">
                              <input type="submit" value="Opret Auktion" name="B1" id="sites"></td>
                              <td width="65%">
                              <input type="reset" value="Reset" name="B2" id="sites"></td>
                            </tr>
                          </table>
                        </td>
                      </tr>
                    </table>
                    </form>
Avatar billede mortrr Praktikant
26. april 2003 - 16:52 #8
Du har jo heller ikke ændret andet end den måde valideringen kaldes på.

Du skal jo også ændre funktionen til det jeg har vist.
Avatar billede mortrr Praktikant
26. april 2003 - 16:53 #9
Hele formularen og script:
<%
ElseIf Request.QueryString("Action") = "kategori_valgt" Then
%>
<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;       
  }

  return true;
}
</script>


<%
Set RS_varegrupper = Server.CreateObject("ADODB.RecordSet")
RS_varegrupper.open "Select * From [varegrupper] WHERE varegruppe_id = " & Request("varegruppe_id") &"", Conn_market, 1, 3

Set RS_kat = Server.CreateObject("ADODB.RecordSet")
RS_kat.open "Select * From [kategorier] WHERE kategori_id = " & RS_varegrupper("kategori_id") &"", Conn_market, 1, 3
%>   
<form method="POST" action="min_auktion.asp?Action=DB_opret_auktion&varegruppe_id=<%=RS_varegrupper("varegruppe_id")%>" onsubmit="return validering(this);">
                    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="226">
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Kategori:</font></td>
                        <td width="80%" valign="top" height="18">
                        <%= RS_kat("navn")%></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font face="Arial" size="2">Varegruppe :</font></td>
                        <td width="80%" valign="top" height="18">
                        <%= RS_varegrupper("navn")%></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Varenavn:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="varenavn" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="64">
                        <font size="2" face="Arial">Varebeskrivelse:</font></td>
                        <td width="80%" valign="top" height="64">
                        <textarea rows="10" name="varebeskrivelse" cols="80" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Mindstepris:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="mindstepris" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="14">
                        <font face="Arial" size="2">Billede:</font></td>
                        <td width="80%" valign="top" height="14">
                        <%
Set RSpicture = Server.CreateObject("ADODB.RecordSet")
RSpicture.open "Select * from [billeder] WHERE uploadedaf = '" & session("username") &"' order by billednummer desc", Conn_market, 1, 3
%>
<select id="sites" tabIndex="1" name="Billede">
<option value="1" selected>Vælg billede</option>
<%

Do while not RSpicture.EOF

%>
<option value="<%=RSpicture("billednummer")%>"><%=RSpicture("Kaldenavn")%></option>
<%
RSpicture.MoveNext
Loop
RSpicture.Close
%></select></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Slutdato:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" id="sites" name="slutdato" size="20"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Tilstand:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="tilstand" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="16">
                        <font size="2" face="Arial">Betaling:</font></td>
                        <td width="80%" valign="top" height="16">
                        <textarea rows="2" name="betaling" cols="40" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18">
                        <font size="2" face="Arial">Placering:</font></td>
                        <td width="80%" valign="top" height="18">
                        <font face="Arial" size="2">
                        <input type="text" name="placering" size="20" id="sites"></font></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="24">
                        <font size="2" face="Arial">Bemærkninger omkring handlen:</font></td>
                        <td width="80%" valign="top" height="24">
                        <textarea rows="4" name="bemaerkning" cols="40" id="sites"></textarea></td>
                      </tr>
                      <tr>
                        <td width="20%" valign="top" height="18"></td>
                        <td width="80%" valign="top" height="18">
                          <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
                            <tr>
                              <td width="35%">
                              &nbsp;</td>
                              <td width="65%">
                              &nbsp;</td>
                            </tr>
                            <tr>
                              <td width="35%">
                              <input type="submit" value="Opret Auktion" name="B1" id="sites"></td>
                              <td width="65%">
                              <input type="reset" value="Reset" name="B2" id="sites"></td>
                            </tr>
                          </table>
                        </td>
                      </tr>
                    </table>
                    </form>
Avatar billede zantiago Nybegynder
26. april 2003 - 16:53 #10
??
Avatar billede zantiago Nybegynder
26. april 2003 - 16:57 #11
Takker :o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester