Avatar billede vandalay Nybegynder
21. marts 2002 - 11:23 Der er 7 kommentarer og
1 løsning

2 forms, en checkfunktion

Jeg har to forms på en side. Den ene er til personlige data, og skal tjekkes inden de lægges i db. Den anden form skal sendes videre til freepay, men inden da skal felterne lige tjekkes. Der er kun en submitknap i den sidste form, men det har virket at den kunne tjekke tekstfelter fra den første form. Bare ikke anden form. Kan man ikke det, altså smide to forsk. forms hen til samme checkfunktion. Skal der måske laves et array med de 2 forms den checker igennem? Er lost! Her er lidt Kode:

<script type="text/javascript">
function validering()
  {
  error = 0;
   
  if((document.forms[0].telefonnrfelt.value=='') && (error==0)) 
  {       
    alert('Indtast venligst dit telefonnummer!');
    document.forms[0].telefonnrfelt.focus();
    error = 1;       
  }           
if((document.forms[0].Betalingskortfelt.value=='') && (error==0)) 
  {       
    alert('Vælg venligst korttype!');
    document.forms[0].Betalingskortfelt.focus();
    error = 1;       
  }   
if(error == 0)
  document.forms[0].submit();   
  }
   
</script>

<form name="form1" method="post" action="" onsubmit="validering();return false;">
<input type="text" name="telefonnrfelt" maxlength="8" size="8">
</form>

<form ="freepay" method="post" action="" onsubmit="validering();return false;">
<input type="text" name="Betalingskortfelt">
<input type="submit" name="Submit" value="Bekræft ordre">
</form>
Avatar billede ras2000 Nybegynder
21. marts 2002 - 13:42 #1
Din kode tjekker jo kun document.forms[0]... altså første form. Prøv at skriv onSubmit="validering(this)"
og i koden
function validering(formen) {
...
og skift document.form[0] ud med formen. Alternativt sæt en lykke op, hvis begge forme skal tjekkes hver gang:
for (i=0;i<2;i++){
document.formen[i]
Avatar billede vandalay Nybegynder
21. marts 2002 - 14:27 #2
Det ser ud til at virke, men hvordan undgår jeg, at når man trykker ok i pop-up vinduet indlæser den siden igen og de allerede indtastede værdier forsvinder. Skal de forms på siden ha et navn eller ingenting?
Avatar billede vandalay Nybegynder
21. marts 2002 - 14:29 #3
eller rettere sagt, hvad skal jeg kalde nr. 2 form, hvis den første hedder "formen"?
Avatar billede ras2000 Nybegynder
21. marts 2002 - 14:36 #4
Det er ikke i selve tag'et du skal skrive formen. Hvis du kalder en function sådan her :<input type="button" onclick="goerdet(this)"> så tager den og sender informationen om knappen op til funktionen goerdet(), og man skal så skrive function goerdet(elementet) { . I funktionen akn du så skrive elementet.value for at få det frem.
Du kan altså bruge samme funktion til at tjekke begge forms ved at skrive dit form tag sådan her:
<form ="freepay" method="post" action="" onsubmit="validering(this);return false;">
og i funktionen skal du så skrive
function validering(fittilihut) {
  error = 0;
   
  if((fittilihut.telefonnrfelt.value=='') && (error==0)) 
  {       
    alert('Indtast venligst dit telefonnummer!');
    fittilihut.telefonnrfelt.focus();
    error = 1;       
  }           
if((fittilihut.Betalingskortfelt.value=='') && (error==0)) 
  {       
    alert('Vælg venligst korttype!');
    fittilihut.Betalingskortfelt.focus();
    error = 1;       
  }   
if(error == 0)
  fittilihut.submit();   
  }
Avatar billede ras2000 Nybegynder
21. marts 2002 - 14:38 #5
Der skulle nok have været et name før ="freepay".
Avatar billede ras2000 Nybegynder
21. marts 2002 - 14:52 #6
Men hvis det er hele din form du har skrevet her, ville det jo nok være noget nemmere med to funktioner, frem for en.
<script type="text/javascript">
function validering1(fomren){
  error = 0;
  if((formen.telefonnrfelt.value==''){       
    alert('Indtast venligst dit telefonnummer!');
    formen.telefonnrfelt.focus();
    error = 1;       
  }           
if(error == 0){
  formen.submit();   
  }
}

function validering2(fomren){
  error = 0;
  if((formen.Betalingskortfelt.value==''){       
    alert('Vælg venligst korttype!');
    formen.Betalingskortfelt.focus();
    error = 1;       
  }   
if(error == 0){
  formen.submit();   
  }
}   
</script>

<form name="form1" method="post" action="" onsubmit="validering1(this);return false;">
<input type="text" name="telefonnrfelt" maxlength="8" size="8">
</form>

<form ="freepay" method="post" action="" onsubmit="validering2(this);return false;">
<input type="text" name="Betalingskortfelt">
<input type="submit" name="Submit" value="Bekræft ordre">
</form>
Avatar billede vandalay Nybegynder
21. marts 2002 - 22:14 #7
tak for hjælpen, du må lige svare, hvis du vil have pointene
Avatar billede ras2000 Nybegynder
22. marts 2002 - 13:35 #8
Hovsa!
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