Avatar billede norregaard Nybegynder
07. oktober 2002 - 13:14 Der er 4 kommentarer og
1 løsning

kald af flere funktioner med onsubmit

Jeg har en form der både skal validere oplysninger i tekstfelter og ligeledes multiplicere værdien af et tekstfelt med 100.
Jeg kan få det til at virke, så længe jeg kun kalder en af funktionerne. med begge går det galt..
håber der er nogen, der kan hjælpe...

det her virker:

<form name="form" method="post" action="modtag1.asp" onsubmit="validering();return false;">

Det her virker ikke:
<form name="form" method="post" action="modtag1.asp" onsubmit="validering();return false;multiply(kundeForm);">

Eller:

<form name="form" method="post" action="modtag1.asp" onsubmit="validering();return false; && multiply(kundeForm);">

her er de to funktioner:

1.:
function multiply(kundeForm) {

    var result = kundeForm.brugernavn.value * 100;
    kundeForm.brugernavn.value = result;
}
2.:
function validering()
  {
  error = 0;
  if((document.forms[0].test.value=='') && (error==0)) 
  {       
    alert('Tekstfeltet skal udfyldes!');
    document.forms[0].test.focus();
    error = 1;       
  }
Avatar billede norregaard Nybegynder
07. oktober 2002 - 13:15 #1
hov funktion to mangler lidt...

2.:

function validering()
  {
  result = 0;
  error = 0;
  if((document.forms[0].test.value=='') && (error==0)) 
  {       
    alert('Tekstfeltet skal udfyldes!');
    document.forms[0].test.focus();
    error = 1;       
  }           

  if(error == 0)
  document.forms[0].submit();
 
  }
Avatar billede jakoba Nybegynder
07. oktober 2002 - 14:26 #2
når du siger  return  stopper udførelsen af den streng og der returnes. resten af strengen bliver ikke udført. så lav multiply kundeform allerforrest.

<form name="form" method="post" action="modtag1.asp" onsubmit="multiply(kundeForm);validering();return false;">

det der:  validering();return false;  er jeg også noget loren ved.
det er bedre at returnere true eller false fra valideringsfunktionen. og så lade onsubmit handleren returnere det videre:

<form name="form" method="post" action="modtag1.asp" onsubmit="multiply(kundeForm);return validering();">

den sidste if i valideringsfunktionen laves så om til:
  if(error == 0) return true;  // alt iorden afsend denne form
  else return false;          // valideringen fandt fejl

mvh JakobA.
Avatar billede Slettet bruger
07. oktober 2002 - 15:21 #3
Jeg ville lægge det i én funktion:

<script>
function valider(frm) {
if (frm.test.value == "") {
alert("Tekstfeltet skal udfyldes!");
frm.test.focus();
return false;
}
frm.brugernavn.value = parseInt(frm.brugernavn.value, 10) * 10;
return true;
}
</script>

Og i formen:

<form name="formular" method="post" action="modtag1.asp" onsubmit="return valider(this);">
Avatar billede jakoba Nybegynder
08. oktober 2002 - 10:03 #4
Helt klart bedre. mit forslag ganger med 100 hvadenten formen validerer eller ikke, så det kan give et forkert tal i brugernavn.
Avatar billede Slettet bruger
10. oktober 2002 - 15:18 #5
P.S. En anden gang er 200 point alt for meget for sådan et nemt spørgsmål.
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